Tôi biết quy ước "Tôi" đã xuất hiện từ COM, nhưng tôi chưa bao giờ hiểu tại sao nó không được xem xét lại như mọi quy ước đặt tên khác trước khi .NET có.
Tiêu thụ khôn ngoan, điều duy nhất tách biệt một giao diện khỏi, giả sử, một lớp trừu tượng, là chúng có thể được nhân rộng. Nhưng tất cả mọi thứ sau Visual Studio 2003 đã hiển thị chữ ký loại trong chú giải công cụ, vì vậy nó cũng vô dụng như tất cả các ký hiệu khác của Hungary đã bị loại bỏ.
Tôi cũng nghĩ rằng nó có thể để bạn có thể triển khai cơ bản giao diện có cùng tên, ví dụ như Message
kế thừa IMessage
, nhưng hầu hết các thư viện .NET đã dùng để thêm từ "Base" vào cuối (ví dụ System.Collections.ReadOnlyCollectionBase
) - và điều này làm cho ý nghĩa ngữ nghĩa nhiều hơn.
COM interop dường như là một lý do có thể khác - nhưng không phải là nếu các lớp trình bao bọc mà nó tạo ra là .NET hoàn toàn thành ngữ, vì vậy tôi nghi ngờ rằng đó là một sự cân nhắc về mặt thẩm mỹ.
Trong một trong những dự án mới hơn của tôi, tôi đã hoàn toàn bỏ qua quy ước và cảm thấy rất ổn. Có thiếu điều gì không?
IList
là một thuật ngữ chung cho một bộ sưu tập tuần tự, tiếp giáp, truy cập ngẫu nhiên, trong khi đó List
là một bộ sưu tập ngẫu nhiên , liên tục, truy cập ngẫu nhiên, bộ sưu tập đang phát triển . Tôi nghĩ rằng F # đã có nó ngay trong răng cưa List
để ResizeArray
; Đó chắc chắn là một cái tên mô tả nhiều hơn. IList
sau đó có thể có được List
, vì vậy dường như đó cũng không phải là một lý do.