Wpis z mikrobloga

#naukaprogramowania #dotnet #csharp

Moja mózgownica dzisiaj słabo pracuje i irytuje się za bardzo żeby coś rozkminiać

czemu od razu pod klasą nie mogę napisać takiego kodu:

string[] cos = new string[3];
cos[0] = "d--a";
cos[1] = "dupadupa";
cos[2] = "dupadupadupa";

tylko dopiero w jakieś metodzie?
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@ugotowany_kamien: a jaki to miałoby mieć sens? pierwsza Twoja linijka tworzy Ci zmienną którą będziesz trzymał w klasie, jakąś właściwość, a kolejne to operacje na nich. Jeżeli chcesz od razu coś takiego to możesz napisać

string[] cos = new string[]{ "d--a", "asdasd", "adsasdasdasdDUPA"};
  • Odpowiedz
@ugotowany_kamien: bo w tym drugim przypadku masz deklarację i przypisanie jednocześnie. W pierwszym przypadku masz oddzielnie deklarację i oddzielnie przypisanie wartości i tutaj może np. polecieć IndexOutOfRangeException tylko coś go musi rzucić (metoda albo instrukcja throw), a że obiekt na tym etapie jeszcze nie istnieje w pełni (musiałoby zakończyć się wykonywanie konstruktora) to nie ma na dobrą sprawę co go rzucić i skąd polecieć. Druga rzecz, że gdyby to było
  • Odpowiedz