2010-09-03 32 views
5

Từ khoá var nhận loại ở thời gian chạy hoặc biên dịch?var thời gian chạy từ khóa hoặc thời gian biên dịch?

hoặc phụ thuộc?

+0

Điều này đã được thảo luận tại các câu hỏi khác, bao gồm [C# 'var' so với hiệu suất loại cụ thể] (http://stackoverflow.com/questions/356846/c-var-vs-specific-type-performance) và [ Sự khác biệt giữa động (C# 4) và var là gì? ] (http://stackoverflow.com/questions/961581/whats-the-difference-between-dynamicc-4-and-var). –

+3

nó không hiển thị trong các gợi ý dude. thực hiện một thuật toán tốt hơn cho điều đó. tôi không điện thoại. – DarthVader

+0

Và tôi không phải là nhà phát triển SO, cộng với tôi không bỏ phiếu để đóng. Tôi đã thêm các liên kết để mọi người có thể đến đó để biết thêm thông tin. –

Trả lời

15

Đơn giản và đơn giản: thời gian biên dịch

var không phải là một loại. Loại thực tế được tìm ra tại thời gian biên dịch.

var biến còn được gọi là Implicitly Typed Local Variables (C# Programming Guide)

+0

tôi đã cố gắng để đến với một trường hợp mà loại wont được biết đến cho đến khi thời gian chạy, là có thể? – DarthVader

+0

@user, no. Nếu trình biên dịch không thể xác định loại, biên dịch sẽ thất bại. –

+2

Bạn nên kiểm tra từ khóa 'động' mới trong C# 4.0. http://msdn.microsoft.com/en-us/library/dd264736.aspx –

4

var loại được tại compile time.

Var là một biến địa phương ngầm gõ được gõ mạnh cũng giống như khi bạn đã tuyên bố loại chính mình, nhưng trình biên dịch xác định loại

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

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

+0

Nếu bạn định thêm dấu ngoặc kép từ trang MSDN, bạn cũng có thể liên kết đến nó. –

1

Các var keyword được ngầm gõ. Điều này có nghĩa là nó được gõ mạnh mẽ, nhưng trình biên dịch xác định loại.

Các vấn đề liên quan