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
  • Odpowiedz
  • 1
@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 :)

  • Odpowiedz
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.
  • Odpowiedz
  • 0
@zibizz1: Tak po prawdzie to raczej nie powinieneś zwracać arraya, ale ienumerable albo ireadonlycollection, ale rozumiem, że to zadanko :p
  • Odpowiedz
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.
  • Odpowiedz
  • 0
@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
  • Odpowiedz
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.
  • Odpowiedz