2010-09-03 2 views
5

var mot-clé obtient le type à l'exécution ou à la compilation?var mot-clé runtime ou temps de compilation?

ou dépend?

+0

Cela a été discuté à d'autres questions, y compris [C# 'var' vs performance de type spécifique] (http://stackoverflow.com/questions/356846/c-var-vs-specific-type-performance) et [ Quelle est la différence entre dynamique (C# 4) et var? ] (http://stackoverflow.com/questions/961581/whats-the-difference-between-dynamicc-4-and-var). –

+3

il ne se présente pas dans les suggestions mec. implémenter un meilleur algorithme pour cela. Je ne suis pas téléphatique. – DarthVader

+0

Et je ne suis pas un développeur SO, plus je n'ai pas voté pour fermer. J'ai ajouté les liens afin que les gens puissent y aller pour plus d'informations. –

Répondre

15

Plain et simple: la compilation

var est pas un type. Le type réel est compris à la compilation.

var variables sont également connues sous le nom Implicitly Typed Local Variables (C# Programming Guide)

+0

J'ai essayé de trouver un cas dont le type ne sera pas connu avant l'exécution, est-ce possible? – DarthVader

+0

@user, no. Si le compilateur ne peut pas déterminer le type, la compilation échouera. –

+2

Vous devriez vérifier le nouveau mot-clé 'dynamic' dans C# 4.0. http://msdn.microsoft.com/en-us/library/dd264736.aspx –

4

type var obtient à compile time.

Var est une variable locale implicitement typée est fortement typée comme si vous aviez déclaré le type vous-même, mais le compilateur détermine le type

var i = 10; // implicitly typed 
int i = 10; //explicitly typed 

http://msdn.microsoft.com/en-us/library/bb383973.aspx

+0

Si vous souhaitez ajouter des citations de la page MSDN, vous pouvez également créer un lien vers celle-ci. –

1

Le var keyword est implicitement typé. Cela signifie qu'il est fortement typé, mais le compilateur détermine le type.

Questions connexes