Const vs readonly: champs constants

De Banane Atomic
Aller à la navigationAller à la recherche

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.
Csharp.svg
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.