Junior
C# да readonly модификатору менен талаалар кандай максаттар үчүн колдонулат?
sobes.tech AI
AIден жооп
C# тилинде readonly модификатору менен белгиленген талаа гана талаанын жарыялануу учурунда же класс конструкторунда башталат. Андан кийин анын мааниси өзгөртүлбөйт.
Колдонуу максаттары:
- Өзгөрбөстүктү камсыздоо: Объект түзүлгөндөн кийин талаанын мааниси случайдуу өзгөртүлбөйт деп кепилдик берет. Бул коддун ишенимдүүлүгүн жогорулатат жана ката табууну жеңилдетет.
- Ар бир нуска үчүн туруктуу маанилер: Статикалык туруктуулар (
const) менен айырмаланып,readonlyталаалар ар кандай нускалар үчүн ар башка маанилерге ээ болушу мүмкүн. - Конструктордо баштоо: Конструктордун логикасына негизделген талаанын акыркы маанисин коюуга мүмкүндүк берет, бул
constталаалар үчүн мүмкүн эмес (алар литер же туруктуу менен башталууга тийиш). - Түзүмдөр менен иштөөдө иштөөчөндүктү жакшыртуу: Түзүмдөр үчүн,
readonlyталаалар иштөөчөндүктү жакшырта алат, анткени компилятор белгилүү оптимизацияларды жасай алат, мааниси өзгөрбөй турганын билсе.
Мисал:
public class MyClass
{
public readonly int ImmutableValue; // Бул жерге же конструктордо башталат
public readonly string Name;
// `readonly` талааларга маанини берүү үчүн конструктор
public MyClass(int value, string name)
{
ImmutableValue = value;
Name = name;
}
// Бул метод компиляция катасын жаратат, анткени ал `readonly` талааны өзгөртүүгө аракет кылат
// public void TryChangeValue(int newValue)
// {
// ImmutableValue = newValue; // Компиляция катасы
// }
}