Junior
Voor welke doeleinden worden velden met de readonly-modifier in C# gebruikt?
sobes.tech AI
Antwoord van AI
Een veld met de modifier readonly in C# kan alleen worden geïnitialiseerd op het moment van de declaratie van het veld of in de constructor van de klasse. Na initialisatie kan de waarde niet worden gewijzigd.
Gebruik doelen:
- Zorg voor onveranderlijkheid: Garandeert dat de waarde van het veld niet per ongeluk wordt gewijzigd na het maken van het object. Dit verhoogt de betrouwbaarheid van de code en maakt debugging eenvoudiger.
- Constanten voor elk exemplaar: In tegenstelling tot statische constanten (
const) kunnenreadonly-velden verschillende waarden hebben voor verschillende instanties van de klasse. - Initialisatie in de constructor: Maakt het mogelijk om een definitieve waarde voor het veld in te stellen op basis van de logica van de constructor, wat niet mogelijk is voor
const-velden (die tijdens compilatie met een literaal of constante moeten worden geïnitialiseerd). - Verbetering van de prestaties bij werken met structuren: Voor structuren kunnen
readonly-velden de prestaties verbeteren, omdat de compiler bepaalde optimalisaties kan uitvoeren, wetende dat de waarde niet zal veranderen.
Voorbeeld:
public class MyClass
{
public readonly int ImmutableValue; // Kan hier of in de constructor worden geïnitialiseerd
public readonly string Name;
// Constructor om waarden toe te wijzen aan readonly-velden
public MyClass(int value, string name)
{
ImmutableValue = value;
Name = name;
}
// Deze methode veroorzaakt een compilatiefout omdat hij probeert een readonly-veld te wijzigen
// public void TryChangeValue(int newValue)
// {
// ImmutableValue = newValue; // Fout tijdens compilatie
// }
}