cuốn sách gpt4 ai đã làm

c# - Đóng gói PropertyChangedCallback

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 22:03:37 28 4
mua khóa gpt4 Nike

Điều này đã làm tôi khó chịu một thời gian nên tôi đã hỏi một đồng nghiệp xem anh ấy có thể tìm ra cách không và tôi ở đây;)

Tại sao tôi có thể truy cập các thành viên riêng tư của lớp đang nắm giữ trong PropertyChangedCallback của thuộc tính phụ thuộc?
Hãy để tôi giải thích thêm ý tôi với ví dụ này:

 /// 
/// Logic tương tác cho ZeControl.xaml
///

lớp một phần công khai ZeControl: UserControl
{
ZeControl công khai()
{
InitializeComponent();
}

bool riêng m_Trololo; //Xin lưu ý rằng trường này là RIÊNG TƯ!

#khu vực Văn bản
văn bản chuỗi công khai
{
nhận được { return (chuỗi)GetValue(TextProperty);
đặt { SetValue(TextProperty, value }
}

// Sử dụng DependencyProperty làm kho lưu trữ hỗ trợ cho Văn bản. Điều này cho phép hoạt ảnh, tạo kiểu, liên kết, v.v...
công khai tĩnh chỉ đọc DependencyProperty TextProperty =
DependencyProperty.Register("Văn bản", typeof(string), typeof(ZeControl), UIPropertyMetadata mới(
PropertyChangedCallback mới((dpo, dpce) =>
{
((ZeControl)dpo).m_Trololo = true; //Cái quái gì vậy?
//this.m_Trololo <-- sẽ không biên dịch, lệnh gọi lại là tĩnh.
})));
#endregion
}

Điều này không phá vỡ sự đóng gói? Nó được biên soạn như thế nào?

Tôi hỏi điều này chủ yếu vì tôi đang sử dụng nó trong ứng dụng WPF của mình: nó cho phép tôi giữ biến ở chế độ riêng tư trong khi truy cập biến đó trong một cuộc gọi lại.
Nhưng vì nó thực sự không ổn chút nào nên tôi không muốn nó bị "sửa" trong WPF vNext, do đó làm cho ứng dụng của tôi không tương thích.

最好的问候,

Đứa bé.

câu trả lời hay nhất

Cuộc gọi lại được xác định trong cùng một lớp có thành viên riêng và không có gì sai với quyền truy cập này. Có vẻ lạ khi các thành viên của phiên bản riêng tư dường như có thể truy cập được "từ bên ngoài" nhưng bạn vẫn ở cùng lớp.

Về đóng gói C# - PropertyChangedCallback, 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/9228248/

28 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress