Saya tahu konvensi "Saya" sudah ada sejak COM, tetapi saya tidak pernah mengerti mengapa konvensi ini belum dipertimbangkan kembali seperti setiap konvensi penamaan lainnya sebelum .NET memilikinya.
Dari segi konsumsi, satu-satunya hal yang memisahkan antarmuka dari, katakanlah, kelas abstrak, adalah bahwa mereka dapat diturunkan secara berlipat ganda. Tapi semuanya setelah Visual Studio 2003 telah menunjukkan tanda tangan jenis di tooltips, jadi sama tidak bergunanya dengan semua notasi Hungaria lainnya yang telah dibuang.
Saya juga berpikir itu mungkin agar Anda dapat memiliki implementasi dasar antarmuka dengan nama yang sama, misalnya Message
mewarisi IMessage
, tetapi sebagian besar pustaka .NET telah menambahkan kata "Base" di akhir (misal System.Collections.ReadOnlyCollectionBase
) - dan ini lebih masuk akal semantik.
COM interop tampaknya menjadi alasan lain yang mungkin - tetapi bukan seolah-olah kelas pembungkus yang dihasilkannya benar-benar idiom .NET, jadi saya ragu bahwa itu adalah pertimbangan estetika.
Dalam salah satu proyek saya yang lebih baru, saya telah melupakan konvensi sepenuhnya, dan rasanya baik-baik saja. Apakah ada sesuatu yang saya lewatkan?
IList
adalah istilah umum untuk koleksi berurutan, bersebelahan, akses acak, sedangkan koleksi List
berurutan, bersebelahan, acak, tumbuh , tumbuh . Saya pikir F # memiliki tepat di aliasing List
untuk ResizeArray
; itu pasti nama yang jauh lebih deskriptif. IList
maka bisa saja List
, jadi sepertinya itu juga bukan alasan.