2009-02-20 5 views
2
public struct Char 
{ 
public const char MaxValue = (char)0xffff; 
public const char MinValue = '\0'; 
} 

Qu'est-ce que c'est pour toujours allouer de la mémoire supplémentaire pour chaque personnage alors que ces deux valeurs sont permanentes?Pourquoi Char.MinVal/.MaxVal ne sont pas statiques? Pourquoi ne pas rendre ces champs statiques?

Édition: Je ne sais pas comment je pourrais oublier d'être implicitement statique!

+0

+1 contre le -1 c'est une question légitime je suppose, je ne sais pas pourquoi vous avez downvoted – fmsf

+0

Je peux comprendre le downvote dans une certaine mesure. Il inclut actuellement des * déclarations * incorrectes plutôt que de demander: "Cela ne signifie-t-il pas que [...]". Je ne suis pas sûr que ça vaut la peine de monter ou de descendre moi-même. –

Répondre

10

Parce qu'ils sont statiques.

Les champs const sont implicitement statiques.

13

Les champs const sont implicitement statiques. De l'article 10.4 de la spécification:

Même si les constantes sont considérés comme membres statiques, une -déclaration constante ne nécessite ni permet un modificateur statique . C'est une erreur pour le même modificateur d'apparaître plusieurs fois dans une déclaration constante .