Const vs readonly: champs constants
Apparence
Ce sont des champs qui prennent leur valeur à l'initialisation puis ne peuvent plus être modifiés.
const
- Est considéré comme static
- Évalué à la compilation.
- Doit être initialisé lors de sa déclaration.
const et types référence
![]() |
Un champs const de type référence doit être initialisé à null, à l'exception de string. |
const double[] monTableau = { 1, 2, 3};
// Error monTableau is of type 'double[]'.
// A const field of a reference type other than string can only be initialized with null.
static readonly ReadOnlyCollection<double> monTableau = new List<double> { 1, 2, 3}.AsReadOnly();
|
readonly
- Peut être static ou non.
- Évalué à l'exécution.
- Doit être initialisé lors de sa déclaration ou dans le constructeur.