Điều này có thể áp dụng cho các địa điểm khác, nhưng trong WinForms, khi tôi sử dụng liên kết, tôi tìm thấy nhiều phương pháp muốn lấy tên của thuộc tính để liên kết. Một cái gì đó như:Có cách nào làm cho C# ràng buộc hoạt động tĩnh không?
class Person
{
public String Name { get { ... } set { ... } }
public int Age { get { ... } set { ... } }
}
class PersonView
{
void Bind(Person p)
{
nameControl.Bind(p,"Name");
ageControl.Bind(p,"Age");
}
}
Vấn đề lớn mà tôi tiếp tục với điều này là "Tên" và "Độ tuổi" được chỉ định là chuỗi. Điều này có nghĩa là trình biên dịch không giúp được gì nếu ai đó đổi tên một thuộc tính của Person. Mã sẽ biên dịch tốt, nhưng các ràng buộc sẽ bị phá vỡ.
Có cách nào tiêu chuẩn để giải quyết vấn đề này mà tôi đã bỏ lỡ không? Nó cảm thấy như tôi cần một số từ khóa, có thể được gọi là stringof để phù hợp với typeof hiện có. Bạn có thể sử dụng nó như sau:
ageControl.Bind(p,stringof(p.Age).Name);
stringof có thể trả về một số lớp có thuộc tính để lấy toàn bộ đường dẫn, hoặc chuỗi để bạn có thể phân tích nó.
Có phải thứ như thế này đã có thể thực hiện được không?
Đây không phải là C# mà gắn bó với động rằng có rất nhiều, điều này là WinForms. –
Đúng. Loại tính năng ngôn ngữ này có thể có ích mặc dù bạn không sử dụng WinForms. –