lista inicjalizacyjna c#

0

Na początku chciałbym się przywitać z forumowiczami jako że jest to mój pierwszy post. :) Od jakiegoś czasu poznaję język C# i spotkałem się z pewnym problemem. Obecnie do nauki korzystam z książki Marcina Lisa "Poznaj tajniki programowania w C#". Jest tam zadanie, aby w konstruktorach dwuargumentowych były wykorzystywane konstruktory jednoargumentowe.
"Kod" wygląda tak:

    class Klasa
    {
        double a;
        char b;
        public Klasa(double a)
        {
            this.a = a;
        }

        public Klasa(char b)
        {
            this.b = b;
        }
        /* Do zapytania: jak wywołać 2 konstruktory*/
        public Klasa(double a,char b):this(a)
        {

        }

        public Klasa(char b, double a):this(b)
        {
            
        }

        public void Wypisz()
        {
            Console.WriteLine("a: {0} b: {1}", a, b);
        }
    } 

Ma ktoś pomysł jak uzupełnić słowo kluczowe :this, aby uzyskać pożądany efekt?

0

Jedno z rozwiązań to np:

        public Klasa(double a, char b)
            : this(a)
        {
            this.b = b;
        }
0

Czyli nie da się wykorzystać jednocześnie dwóch innych konstruktorów?

0

Nigdy nie zdarzyło mi się spotkać takiej konstrukcji. Można wywołać kolejny konstruktor ale w łańcuchu, np:

        public Klasa(double a, char b)
            : this(b, a)
        {
//ten konstruktor tylko zmienia argumenty miejscami.
        }

        public Klasa(char b, double a)
            : this(b)
        {
            this.a = a;
        }
0

Dzięki za odpowiedź :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1