Junior — Middle
Дар контексти барномаинависӣ, калимаҳои калидии const ва readonly чӣ фарқ доранд ва дар кадом ҳолатҳо истифодаи онҳо афзалтар аст?
sobes.tech AI
Ҷавоб аз AI
Дар C# калидӣ калидвожа const барои эълон кардани тағйирнопазирон истифода мешавад, ки арзишҳои онҳо дар вақти компилятсия маълуманд ва дар вақти иҷро наметавонанд тағйир ёбанд. Ин арзишҳо бояд primitives ё литрал бошанд ва фавран оғоз ёбанд.
readonly барои майдонҳое истифода мешавад, ки арзиши онҳоро танҳо дар вақти эълон ё дар конструктори синф муайян кардан мумкин аст. Пас аз оғоз, арзиш тағйир ёбанда нест, аммо метавонад дар вақти иҷро ҳисоб карда шавад.
Вақте истифода бурдан:
const— барои арзишҳои тағйирнопазир, ки дар вақти компилятсия маълуманд (масалан, рақамҳо, сатрҳо).readonly— вақте ки арзиш танҳо дар вақти иҷро маълум аст, масалан, вобаста ба параметрҳои конструктор.
Масал:
public class Example {
public const double Pi = 3.1415; // дар вақти компилятсия маълум
public readonly DateTime CreatedAt;
public Example() {
CreatedAt = DateTime.Now; // оғоз дар вақти иҷро
}
}