Aktywne Wpisy

annlupin +69
zaraz bede horrory oglądać tylko na picke trzeba poczekać jeszcze a co uwas

maly_atak_paniki +191
Ahh tak, te oczy po matce #harrypotter
źródło: 989cd6c2f6e6c9976814ffb2e75fe80.jpg
PobierzSkopiuj link
Skopiuj link

źródło: 989cd6c2f6e6c9976814ffb2e75fe80.jpg
PobierzRegulamin
Reklama
Kontakt
O nas
FAQ
Osiągnięcia
Ranking
I wszystko git, zrozumiałem o co chodzi, ale męczy mnie jedna rzecz. Mianowicie jest tam taka metoda:
public IList GetUncommittedEvents(){
return new List(_uncommittedEvents);
}
I nie rozumiem dlaczego zwracana jest nowa lista w sytuacji gdy w tej klasie gdzie jest ta metoda ta lista jest inicjalizowana:
private readonly IList _uncommittedEvents = new List();Jest w tym jakiś sens czy to tylko pomyłka autora?
#programowanie #dotnet #csharp
2. To taki sposób żeby aplikacja alokowała więcej pamięci i GC miał co robić
3. A poważnie to udostępniając wewnętrzną listę ryzykujesz że ktoś Ci w niej nabroi
4. Zazwyczaj w takim wypadku lepiej zwrócić read-only collection która nie powinna mieć w środku osobnej tablicy tylko opakowywać oryginalną blokując jej edycje
GetUncommitedEventsto dostanie listę eventów w danej chwili i tyle. Nie musi się bać, że jakiś inny wątek będzie zapisywał do tej list (bo kto wie co ta klasa robi) albo jakiś kod zawołaGetUncommitedEventsw innym miejscu i tamto miejsce będzie modyfikowało tą listę w taki sposób, że to pierwotne miejsce się wysypieKomentarz usunięty przez autora