2012-03-30 24 views
6

Tôi đang nghiên cứu của người khác mã và có một phương pháp như thế này là gì:sự khác biệt giữa OptionalAttribute và các thông số tùy chọn trong C# 4.0

public SomeClass DoSomething(string param1, [Optional, DefaultParameterValue("")] string optional) 

Tại sao ai đó sẽ sử dụng các thuộc tính thay vì

public SomeClass DoSomething(string param1, string optional = "") 

Có sự khác biệt nào về hành vi, v.v. không?

+0

[MSDN] (http: // msdn.microsoft.com/en-us/library/system.runtime.interopservices.defaultparametervalueattribute.aspx) –

Trả lời

9

Nếu họ không sử dụng C# 4 chẳng hạn? Tôi tin rằng phiên bản thứ hai sẽ biên dịch thành chính xác phiên bản đầu tiên ...

(tôi đã biên soạn cả hai và chạy chúng thông qua ILDASM - không có khác biệt đáng kể.)

+0

không liên quan: đây có phải là một số phép thuật người dùng cấu hình cao không? Bạn đã thêm câu cuối cùng sau và tôi vẫn không thấy lịch sử chỉnh sửa :) –

+2

@Sunny: Có thời gian gia hạn năm phút, trong thời gian đó tác giả không được hiển thị. –

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