sách gpt4 ai đã đi

Tự động INotifyPropertyChanged

In lại Tác giả: IT Prince Thời gian cập nhật: 2023-10-29 03:46:22 28 4
mua khóa gpt4 Nike

Có cách nào để tự động nhận thông báo về những thay đổi thuộc tính trong một lớp mà không cần phải viết OnPropertyChanged trong mỗi bộ thiết lập không? (Tôi có hàng trăm bất động sản và tôi muốn biết liệu chúng có thay đổi không).


Anton đề xuất proxy động .Tôi thực ra đã từng sử dụng thư viện "Castle" cho những mục đích tương tự trong quá khứ và mặc dù nó giúp giảm lượng mã tôi phải viết nhưng lại làm tăng thêm khoảng 30 giây cho thời gian khởi động chương trình của tôi (ymmv) - vì đây là giải pháp thời gian chạy.

Tôi tự hỏi liệu có giải pháp thời gian biên dịch nào không, có thể là sử dụng thuộc tính thời gian biên dịch...


Slashene và TcKs đưa ra gợi ý về cách tạo mã trùng lặp - thật không may là không phải tất cả các thuộc tính của tôi đều là trường hợp đơn giản của m_Value = value - nhiều thuộc tính có mã tùy chỉnh trong trình thiết lập nên mã theo khuôn mẫu trong các đoạn mã và xml cũng không thực sự khả thi đối với dự án của tôi.

1 Câu trả lời

biên tập: Tác giả của NotifyPropertyWeaver đã loại bỏ công cụ này để ủng hộ công cụ chung hơn Fody . (hướng dẫn di cư Dành cho những người chuyển từ weaver sang fordi. )


Một công cụ rất tiện dụng mà tôi sử dụng trong các dự án của mình là Thông báo cho Property Weaver Fody .

Nó tự cài đặt như một bước xây dựng trong dự án của bạn và đưa vào Thuộc tính đã thay đổi Mã sự kiện.

Để tạo một thuộc tính tăng PropertyChanged, đặt thuộc tính đặc biệt Để hoàn thành chúng:

[Triển khai Thuộc tính đã thay đổi]
công khai chuỗi MyProperty { lấy; đặt; }

Như một phần thưởng, bạn cũng có thể chỉ định các mối quan hệ cho các thuộc tính phụ thuộc vào các thuộc tính khác

[Triển khai Thuộc tính đã thay đổi]
công khai double Radius { lấy; đặt; }

[Phụ thuộc vào("Bán kính")]
Khu vực đôi công cộng
{
lấy { trả về Bán kính * Bán kính * Math.PI; }
}

Liên quan đến c# - INotifyPropertyChanged tự động, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/527602/

28 4 0
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com