Z konstruktora do konstruktora

0

W jaki sposób mogę przekazać coś z jednego konstruktora do drugiego?

Dam przykład w Java

class Label {
   Label() {
      
      this("", "", "");
   }
   Label(String arg1) {

      this(arg1, "", "");
   }
   Label(String arg1, String arg2, String arg3) {
   
      this.author = arg1;
      this.contact = arg2;
      this.comment = arg2;
   }


   private final String author;
   private final String contact;
   private final String comment;
}
1

W taki sam.

0

No właśnie nie, podświetla mi 'this' na czerwono, i pisze 'Method name expected'.
hmm

0

Przekazujesz parametry tak samo, tylko inaczej się to wywołuje:

public Something() : this("", "", "")
{
   //...
}
1

Z tym że w C# tak się nie robi, bo są parametry domyślne:

Label(string arg1="",string arg2="",string arg3="") 
  {
   this.author = arg1;
   this.contact = arg2;
   this.comment = arg2;
  }
0

Kurde, dlaczego w kursach, jak jest mowa o konstruktorach, to się takie coś pomija?
Dzięki :)

Super sprawa z tymi parametrami domyślnymi, bardzo mi się to podoba, tylko akurat nie przekazuję prymitywów, a instancji tak tworzyć nie można :P

0
Alpinista Wrażliwy napisał(a):

...tylko akurat nie przekazuję prymitywów, a instancji tak tworzyć nie można :P
To przekaż null, zaś konstruktor zamiast null ma wstawić nowy obiekt.

0

Dobre :)

0
_13th_Dragon napisał(a):

To przekaż null, zaś konstruktor zamiast null ma wstawić nowy obiekt.

dokładnie w ten sposób to powinno wyglądać. W ten sposób możesz pominąć dowolny obiekt z parametrów przekazując null
Możesz to uprościć operatorem "??"

public Foo(Bar a = null)
{
    this.klasa = a ?? new Bar();
}
0

Ile ten C# kryje jeszcze cukierków... :)
Dzięki, wyłapałem od Was dużo dobrego :)

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