Nhóm C# trước đây đã xem xét thêm thuộc tính mở rộng, sự kiện, v.v. vào C#.Bảo quản trạng thái theo phương pháp mở rộng
mỗi Eric Lippert:
http://blogs.msdn.com/b/ericlippert/archive/2009/10/05/why-no-extension-properties.aspx
Đối với các tính năng này có ích tuy nhiên, họ sẽ phải có khả năng lưu trữ một số loại mới của nhà nước với một đối tượng. Có vẻ như cách duy nhất để làm điều này là sử dụng từ điển và kết hợp từng cá thể của một đối tượng với bất kỳ trạng thái bổ sung nào. Sẽ rất hữu ích nếu có thể sao chép chức năng này "thủ công" bằng cách tạo từ điển của riêng tôi (và có thể lấy/đặt các phương thức mở rộng). Tuy nhiên, để kết hợp một cá thể cụ thể của một đối tượng với một số trạng thái, bạn sẽ cần phải băm số tham chiếu thực tế thực tế cho đối tượng. Trong một ngôn ngữ khác, bạn có thể làm điều này bằng cách băm vị trí bộ nhớ của nó, tuy nhiên trong C# không được bảo đảm ở trạng thái không đổi và việc sử dụng mã không an toàn để thực hiện tính năng này là rất lý tưởng.
Có ai biết nếu có thể lấy một số tham chiếu có thể băm vào đối tượng không thay đổi khi thay đổi trạng thái nội bộ của đối tượng không? Rõ ràng là có một số cơ chế nội bộ để theo dõi các đối tượng riêng lẻ bất kể vị trí bộ nhớ của chúng, nhưng tôi không chắc liệu nó có được tiếp xúc với mã người dùng hay không.
Lưu ý: Đơn giản chỉ băm đối tượng chính nó sẽ không hoạt động chút nào, vì GetHashCode() phụ thuộc vào trạng thái bên trong của đối tượng không nằm trên đối tượng.
Cảm ơn mọi thông tin chi tiết.
Ugh, tôi thích các phương pháp mở rộng vì chúng KHÔNG xử lý trạng thái của đối tượng và chỉ là đường cú pháp, tôi sợ làm bất cứ điều gì thực sự làm mờ đường quá nhiều ...Điều đó nói rằng, nó là một suy nghĩ thú vị, tất nhiên ... –