Vì vậy, tôi nghe nói rằng việc chứng thực một giá trị trong một tài sản như thế này:Xác nhận giá trị tài sản
//dummy example, let's assume that I want my value without dots
public string MyProp
{
set
{
if(value.Contains('.'))
throw new ArgumentException("Must not contain '.'", "value");
}
}
là sai và tôi nên tránh nó.
Nhưng trong những ngày trước đó, tôi được thông báo rằng đây là cách tốt. Chúng tôi có thể sử dụng đóng gói, chỉ có một nơi để kiểm tra, DRY, v.v.
Có gì sai với ví dụ nhỏ của tôi?
không có gì sai với nó, nhưng a) Tôi muốn ném 'ArgumentException', b) bạn quên đặt giá trị thực sự! –
Bạn không thể chỉ ném một chuỗi. Bạn cần phải ném một ngoại lệ. – Dan
có thể trùng lặp của [C# thêm xác thực trên phương thức setter] (http://stackoverflow.com/questions/6127290/c-sharp-add-validation-on-a-setter-method) – jrummell