Wpis z mikrobloga

via Wykop Mobilny (Android)
  • 0
@Yahoo_: to takie zabezpieczenie które pojawiło się w ostatnich latach w kompilatorze chyba.

list[i].item=value; to jest źle

var elem=list[i];
elem.item;
list[i]=elem;

Tuple jest strukturą więc w przypadku tablicy dostajemy miejsce w pamięci gdzie ta struktura się znajduję i mozemy bezpośrednio tam edytować. Lista zwraca kopie struktury więc edytując to nic się nie dzieje, dlatego kompilator wskazuje to jako błąd.
Lista opakowuje tablicę dodając dodatkowe funkcjonalności
@zibizz1: Ja wiem czemu się tak dzieje, ale zwykle pracuje się z klasami i jakoś tak wyleciało z głowy. Gdybym miał listę intów to bym wiedział, że jak wyciągnę element z tablicy i zmienię wartość to w liście się nic nie zmieni, ale jakoś tak z tuplem umknęło mi :)

via Wykop Mobilny (Android)
  • 0
@Yahoo_: to jest jedno z pytań które zawsze daje na rozmowach, w tym w czym działam są 2 właściwości np

controller
i controllers
Zazwyczaj jest jeden i można tam przypisać co się chce, ale controllers zwraca za każdym razem nowa tablicę więc
controllers[2]=newController; jest błędem i nie działa i to nie ma żadnego zabezpieczenia, każdy junior sie na tym wykłada.
via Wykop Mobilny (Android)
  • 0
@Yahoo_: Nie, to biblioteka której używa 1.5miliona deweloperów na świecie, tak jest od wielu lat. Kolejność elementów ma duże znaczenie, więc raczej ienumerable nie pasuje. Trzeba z tym żyć i być tego świadomym. To property możnaby zamienić na 4 metody(set/get x kolekcja/index) ale myślę że nadal byłobybduzo osób piszących
GdyControllers()[2]=newController; i zastanawiających się dlaczego nie działa.
@zibizz1: Dobra, ale nawet jak unity to tak robi to nie znaczy, że to zgodne ze sztuką ;p. To API kłamie. Mówi - to jest property z arrayem materials, a tak naprawdę dostajesz kopię. Unity robi sporo rzeczy po swojemu, wbrew standardom c#.
Z metodami to trochę inna kwestia, bo standardem jest, że zwrócony wynik jest czymś stworzonym przed chwilą, tymczasowym.
Property co prawda jest tak naprawdę metodą, ale właśnie po
via Wykop Mobilny (Android)
  • 0
@Yahoo_: no są ku temu powody, ale trzeba zrozumieć współpracę kodu zarządzanego z niezarzadzanym. Ale to do niczego nie potrzebne. Pewnie dużo ludzi co ponad 5lat codziennie w tym pracuje nie jest świadomych jak to działa.