2011-07-20 3 views
0

pourquoi je ne peux pas déclarer par exemple var myVar = "myvariable" comme une variable globale dans une classe ?. Y a-t-il un moyen de le faire?.Déclarer var fonctions externes

+1

Alors, à quoi sert 'class'? – Rahul

+0

duplication possible de [Pourquoi les champs de classe ne peuvent pas être var?] (Http://stackoverflow.com/questions/4461597/why-class-fields-cannot-be-var) –

Répondre

3

Beginning in Visual C# 3.0, variables that are declared at method scope can have an implicit type var

En raison de la spécification C#, ils ne se trouvent qu'à une portée de méthode.

9

why i can't declare for example var myVar="myvariable" as a global variable in a class?.

Parce que c'est ainsi que le designers of the C# language a décidé de l'implémenter.

Is there any way to do it?.

Non, il n'y en a pas.

+0

pourriez-vous expliquer pourquoi? Pourquoi les concepteurs ont-ils pris cette décision? – naveen

+0

@naveen, avez-vous lu le billet de blog auquel je me suis connecté: http://blogs.msdn.com/b/ericlippert/archive/2009/01/26/why-no-var-on-fields.aspx Il est écrit par l'un des concepteurs du compilateur C# et dans lequel il explique la raison. –

+0

pas je din't. J'ai édité eric lippert en tant que concepteurs dans mon précédent article avant de le soumettre. – naveen

0

var est un mot-clé, généralement utilisé pour les types anonymes. Ensuite, en déclarant le champ ou la variable globale, vous devez définir explicitement le type réel pour votre champ.

From MSDN:

  • var can only be used when a local variable is declared and initialized in the same statement; the variable cannot be initialized to null, or to a method group or an anonymous function.

  • var cannot be used on fields at class scope.

  • Variables declared by using var cannot be used in the initialization expression. In other words, this expression is legal: int i = (i = 20) ; but this expression produces a compile-time error: var i = (i = 20) ;

  • Multiple implicitly-typed variables cannot be initialized in the same statement.

  • If a type named var is in scope, then the var keyword will resolve to that type name and will not be treated as part of an implicitly typed local variable declaration.

Voir aussi: Eric Lippert opinion

1

Non, var est que pour les variables scope localement. Voir this

0

Le type implicite ne peut être placé que dans la portée de la méthode en tant que variable locale.

0

Je pense que vous cherchez une variable statique.

Par exemple

public class AGlobalVar 
{ 
    public static int AVar = 10; 

} 

Vous devriez pouvoir accéder à la variable partout dans l'application. Pour y accéder il suffit d'aller AGlobalVar.AVariable.

Questions connexes