2010-01-15 11 views

Répondre

5

SqlInt32.Null est un champ static readonly, pas une constante. Cela signifie que sa valeur peut ne pas être connue au moment de la compilation.

La principale différence entre un champ et un static readonlyconst est que le const peut être initialisés que dans la déclaration de celui-ci, alors que le champ static readonly peut être initialisé dans la déclaration ou dans un constructeur.

Exemple:

public class SomeClass 
{ 
    public static readonly int SomeValue; 

    static SomeClass() 
    { 
     SomeValue = DateTime.Now.Millisecond; 
    } 
} 

Dans l'exemple ci-dessus un champ static readonly est initialisé par le constructeur statique d'une manière qui éclaire la raison pour laquelle il ne peut être déterminée au moment de la compilation.

Questions connexes