Có cách nào để truy cập trường sao lưu cho thuộc tính để thực hiện xác thực, thay đổi theo dõi, v.v. không?Tiếp nhận trường sao lưu trong thuộc tính tự động
Có thể làm như sau? Nếu không có bất kỳ kế hoạch nào để có nó trong .NET 4/C# 4?
public string Name
{
get;
set
{
if (value != <Keyword>)
{
RaiseEvent();
}
<Keyword> = value;
}
}
Vấn đề chính tôi có là sử dụng thuộc tính tự động không cho phép tính linh hoạt tương tự trong xác thực, vv mà thuộc tính có trường hậu thuẫn rõ ràng. Tuy nhiên một trường sao lưu rõ ràng có bất lợi trong một số trường hợp cho phép lớp được chứa trong để truy cập trường sao lưu khi nó truy cập và sử dụng lại xác thực, thay đổi theo dõi vv của thuộc tính giống như bất kỳ lớp nào khác có thể truy cập tài sản bên ngoài.
Trong ví dụ trên truy cập vào các lĩnh vực sao lưu sẽ được scoped đến tài sản do đó ngăn ngừa gian lận của các xác nhận bất động sản, thay đổi theo dõi, vv
Edit: Tôi đã thay đổi < Sao Field> để < từ khóa >. Tôi sẽ đề xuất một từ khóa mới tương tự như giá trị. trường sẽ hoạt động tốt mặc dù tôi chắc chắn rằng nó đang được sử dụng trong nhiều mã hiện có.
Đó là một giải pháp tốt nhưng rất nhiều mã khi truy cập trường theo cách tương tự chúng tôi truy cập giá trị mới trong trình thiết lập với từ khóa giá trị được gọn gàng hơn và thanh lịch hơn. –
Bạn có thể làm cho cú pháp đẹp hơn bằng cách thêm toán tử = và co đến T trên lớp ValidatedValue. Về cơ bản bạn muốn nó hoạt động như một ValidatedValue là một T. –