2010-09-03 16 views
5

Zmienna słowo kluczowe dostaje typ w czasie wykonywania lub czasie kompilacji?var słowo kluczowe środowisko wykonawcze lub czas kompilacji?

lub zależy?

+0

Zostało to omówione w innych pytaniach, w tym [C# 'var' kontra wydajność określonego typu] (http://stackoverflow.com/questions/356846/c-var-vs-specific-type-performance) i [ Jaka jest różnica między dynamicznymi (C# 4) i var? ] (http://stackoverflow.com/questions/961581/whats-the-difference-between-dynamicc-4-and-var). –

+3

to nie pojawia się w sugestii koleś. implementuj lepszy algorytm dla tego. Nie jestem telefonem. – DarthVader

+0

Nie jestem programistą SO i nie głosowałem, by zamknąć. Dodałem linki, aby ludzie mogli tam pojechać, by uzyskać więcej informacji. –

Odpowiedz

15

Jasne i proste: kompilacji

var nie jest typem. Rzeczywisty typ jest obliczany podczas kompilacji.

var zmienne są znane również jako Implicitly Typed Local Variables (C# Programming Guide)

+0

Próbowałem wymyślić przypadek, którego typ nie będzie znany do czasu wykonania, czy to możliwe? – DarthVader

+0

@user, nie. Jeśli kompilator nie może określić typu, kompilacja zakończy się niepowodzeniem. –

+2

Powinieneś sprawdzić nowe słowo 'dynamic' w C# 4.0. http://msdn.microsoft.com/en-us/library/dd264736.aspx –

4

typu var dostaje na compile time.

Var jest niejawnie wpisane zmienna lokalna jest silnie wpisany tylko jak gdyby zadeklarował typu siebie, ale kompilator określa rodzaj

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

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

+0

Jeśli zamierzasz dodawać cytaty ze strony MSDN, możesz równie dobrze linkować do niego. –

1

The var keyword jest niejawnie wpisane. Oznacza to, że jest mocno wpisany, ale kompilator określa typ.

Powiązane problemy