2009-07-31 25 views

Trả lời

25

Với RC2010 RC, tôi đã có thể tạo một ứng dụng .NET 3.5 sử dụng các tham số tùy chọn trong C#.

Vì vậy, có, đó là tất cả về đường cú pháp.

2

Tôi không có VS2010 được cài đặt ở đây để kiểm tra, nhưng tôi tin rằng đây hoàn toàn là một tính năng ngôn ngữ và do đó có thể sử dụng được bất kể khung được nhắm mục tiêu.

Chỉnh sửa: Nhìn vào số link (và một số khác), có vẻ như tham số tùy chọn biên dịch thành đối số phương pháp với thuộc tính [opt] trong il. Tôi không biết nếu tham số này tồn tại trong các phiên bản trước của clr, nhưng vẫn đoán của tôi sẽ được rằng nó.

+0

Vâng, tôi nghĩ rằng đây là trường hợp , nhưng tôi không muốn đi qua cài đặt VS2010 khi nó không phải là RTM nào được nêu ra nếu nó không cung cấp cho tôi. –

+2

C# 4.0 reuses thuộc tính mà VB sử dụng cho mục đích đó, do đó, nó đã được khoảng từ 1.0. –

0

VB.NET có tham số tùy chọn nếu bạn muốn sử dụng tham số tùy chọn trong .NET 3.5.

+1

Vâng, tôi biết. Tôi yêu các thông số tùy chọn nhưng ghét VB. ;) Plus, có một ứng dụng trong 2 ngôn ngữ là loại của một kludge nếu bạn chỉ cần VB công cụ cho một hoặc hai lớp học. –

13

VS 2010 hỗ trợ các tham số tùy chọn trong C# cho các giải pháp .NET 3.5. Tuy nhiên, một lời nhắc nhở là trình biên dịch dòng lệnh sẽ báo cáo lỗi.

Vì vậy, nếu bạn đã tự động xây dựng trong hoạt động, - bằng cách sử dụng NANT hoặc một cái gì đó khác bằng cách sử dụng trình biên dịch dòng lệnh - xây dựng của bạn sẽ thất bại.

+1

Vì vậy, công việc xung quanh trong điều này là để thay đổi xây dựng tự động của bạn để sử dụng MSBuild nằm trong 4,0 Framework Directory. – Jeff

+0

Tôi đang đối mặt với cùng một vấn đề và thực sự nó không hoạt động khi chạy msbuild bằng cách sử dụng dòng lệnh. Tôi đang sử dụng đã là msbuild trong thư mục khung 4.0. Tôi cũng đã thử tham số /toolsversion:4.0 và /p:TargetFrameworkVersion=v4.5 nhưng không may mắn! Tôi tiếp tục nhận được lỗi CS1644! Bất kỳ ý tưởng nào? – papadi

5

Giống như Jon Skeet tôi đã nhận được thông số tùy chọn "Tính năng" không thể được sử dụng vì nó không phải là một phần của đặc tả ngôn ngữ 3.0 C# ". Tuy nhiên trong phiên bản RTM của Visual Studio bạn có thể chọn Phiên bản ngôn ngữ thành "mặc định" trong Thuộc tính dự án-> Xây dựng-> Nâng cao. Điều đó khiến nó hoạt động cho tôi.

3

Bạn có thể sử dụng tham số tùy chọn và được đặt tên trong khung nhắm mục tiêu của phiên bản trước, miễn là các cụm được xây dựng trong môi trường phát triển cho v4 (f.e. VS2010). Nhưng bạn nên biết về các trang biên dịch hoặc xuất bản thời gian chạy trong trường hợp này trình biên dịch của khung được nhắm mục tiêu sẽ được sử dụng. Và bởi vì các trình biên dịch của các khung công tác cũ hơn không hiểu cú pháp của các tham số tùy chọn và được đặt tên, nó sẽ dẫn đến các lỗi trình biên dịch.

+0

Tôi nghĩ những gì Frans đề cập là một điểm quan trọng. Nếu bạn biên dịch một ứng dụng máy tính để bàn gọi một phương thức sử dụng các tham số tùy chọn với khung được nhắm mục tiêu của phiên bản cũ hơn, hãy nói 2.0, trong VS2012, mọi thứ đều ổn. Nhưng bạn sẽ không thể xây dựng một ứng dụng web với một khung được nhắm mục tiêu của một phiên bản cũ hơn mà gọi cùng một phương thức. – heuristican

3

Chuyển đến thuộc tính dự án -> Tab xây dựng -> nút nhấp 'Nâng cao' -> đặt phiên bản ngôn ngữ thành 'mặc định' -> lưu -> vui vẻ;)

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