2010-08-04 25 views

Trả lời

14

var là một tính năng của C# 3.0, nhưng nó không đòi hỏi bất kỳ khuôn khổ tính năng. Nói cách khác, nó hoàn toàn tốt để sử dụng trong một dự án nhắm mục tiêu .NET 2.0. Điều tương tự cũng đúng với nhiều tính năng khác - loại ẩn danh, thuộc tính tự động, biểu thức lambda, v.v.

Xem versions article để biết thêm thông tin. (Tôi cần cập nhật nó cho C# 4 tại một số thời điểm ...)

Nếu bạn muốn để giới hạn bản thân bằng C# 2.0, bạn có thể chỉ định phiên bản ngôn ngữ bằng cách nhấp vào "Nâng cao" trong tab Xây dựng của thuộc tính dự án, IIRC. (Chắc chắn có nơi nào đó, nhưng tôi muốn có một tách cà phê hơn là kiểm tra vị trí chính xác ngay bây giờ.)

+3

+1./langversion (C# Compiler Options) (http://msdn.microsoft.com/en-us/library/f4ckecs0.aspx) – desco

+0

Cảm ơn cả Jon và desco! Đây chính xác là những gì tôi muốn - để hạn chế các tính năng ngôn ngữ đối với C# 2.0. – DixonD

1

Miễn là dự án của bạn sẽ luôn được biên dịch bằng Visual Studio 2008 hoặc mới hơn, bạn an toàn để sử dụng các tính năng C# 3.0. Mục tiêu .NET 2.0 chỉ hạn chế những thư viện nào bạn có thể sử dụng, chứ không phải những tính năng ngôn ngữ nào.

+0

Mục đích tại sao tôi cần hạn chế mã của tôi thành 2.0 mà nó được cho là được biên dịch theo .NET Framework 2.0 thuần túy sau đó. – DixonD

3

var hoàn toàn là một tính năng thời gian biên dịch, một khi lắp ráp được biên dịch, trình biên dịch chèn thực tế loại và thực tế là bạn đã sử dụng var là "bị mất".

Vì vậy, một dự án đang nhắm mục tiêu phiên bản 2.0 của khuôn khổ vẫn có thể sử dụng tính năng var, bởi vì nó không thực sự ảnh hưởng đến lắp ráp được xuất ra theo bất kỳ cách nào.

-1

Hoặc thay thế toàn văn bằng var bằng 1var1 và thay thế bằng tay hoặc sử dụng phiên bản trình biên dịch trước 3.0.

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