Sobes.tech
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; // оғоз дар вақти иҷро
    }
}