2009-03-25 22 views
10

Nếu một giá trị không hợp lệ được chuyển đến một trình thiết lập thuộc tính và ArgumentException (hoặc khả năng một lớp dẫn xuất từ ​​nó) được ném, giá trị nào sẽ được gán cho tham số paramName?Giá trị để gán cho tham số 'paramName' cho ArgumentException trong C# property setter?

value, vì dường như đó là đối số thực tế?

Thay vào đó, việc chuyển tên của thuộc tính có rõ ràng hơn không?

Trả lời

9

ArgumentExceptions chứa tên tham số không hợp lệ. Đối với một setter thuộc tính, tham số thực tế được đặt tên là value (trong cả mã nguồn và mã được sinh ra). Nó phù hợp hơn để sử dụng tên này.

+1

Tôi đoán giả định là StackTrace sẽ làm rõ tài sản được đề cập. –

2

Có, sẽ rõ ràng hơn khi chuyển tên của thuộc tính.

8

Sau poking trên phạm vi rộng với Reflector (cố gắng tìm một đối tượng CLR với một tài sản có thể ghi), người đầu tiên tôi thấy (FileStream.Position) sử dụng "giá trị" như tên đối số:

if (value < 0L) 
{ 
    throw new ArgumentOutOfRangeException("value", 
       Environment.GetResourceString("NeedNonNegNum")); 
} 
Các vấn đề liên quan