Junior
C#-da readonly modifikatoru ilə sahələr hansı məqsədlər üçün istifadə olunur?
sobes.tech Süni İntellekt
AI-dan cavab
C# dilində readonly modifikatoru ilə işarələnmiş sahə yalnız sahənin elan olunması zamanı və ya sinifin konstruktorunda başlatıla bilər. Başladıqdan sonra onun dəyəri dəyişdirilə bilməz.
İstifadə məqsədləri:
- Dəyişməzliyi təmin etmək: Obraz yaradıldıqdan sonra sahənin dəyərinin təsadüfi dəyişdirilməsinin qarşısını alır. Bu, kodun etibarlılığını artırır və səhvlərin tapılmasını asanlaşdırır.
- Hər bir nümunə üçün sabitlər: Statik sabitlər (
const) ilə müqayisədə,readonlysahələr müxtəlif nümunələr üçün fərqli dəyərlər ala bilər. - Konstruktor daxilində başlatma: Konstruktorun məntiqinə əsaslanaraq sahənin son dəyərini təyin etməyə imkan verir, bu
constsahələr üçün mümkün deyil (onlar literal və ya sabit ilə tərtib zamanı başlatılmalıdır). - Strukturlarla işləyərkən performansı artırmaq: Strukturlar üçün,
readonlysahələr performansı yaxşılaşdıra bilər, çünki tərtibçi müəyyən optimizasiyalar edə bilər, dəyər dəyişməyəcəyini biləndə.
Nümunə:
public class MyClass
{
public readonly int ImmutableValue; // Burada və ya konstruktor daxilində başlatıla bilər
public readonly string Name;
// Readonly sahələrə dəyər təyin etmək üçün konstruktor
public MyClass(int value, string name)
{
ImmutableValue = value;
Name = name;
}
// Bu metod tərtib xətası ilə nəticələnəcək, çünki o, readonly sahəni dəyişməyə çalışır
// public void TryChangeValue(int newValue)
// {
// ImmutableValue = newValue; // Tərtib xətası
// }
}