Skip to main content

Posts

Showing posts with the label AsReadOnly

ReadOnlyCollection

Va mai aduceti aminte ca in C++ puteam sa declaram o variabila sa fie constanta, fara a ne face probleme ca un utilizator ii poate schimba valoarea. In C# putem sa facem un lucru asemanator folosindu-ne de readonly. public class Car { internal readonly int _id; public Car(int id) { _id = id; } } Doar in contructor se va putea initializa field-ul _id. Valoarea acestui camp nu se va putea modifica in nici o locatie din cod. Dar daca in loc de int am aveam o lista, ar aparea probleme. Chiar daca nu se va putea instanta din nou acest camp, continutul acestuia se va putea modifica. public class Car { internal readonly List<Component> _components; public Car(List<Component> components) { _components = components; } } public class Logan : Car { // ... public void SomeMethod() { _components.Add(..); _components.Remove(..); } } Oricine ar putea sa adauge sau sa stearga elemente din lista. Am av...