Nama Kelas, Struktur, dan Antarmuka

Catatan

Konten ini dicetak ulang oleh izin Pearson Education, Inc. dari Panduan Desain Kerangka Kerja: Konvensi, Idiom, dan Pola untuk Pustaka .NET yang Dapat Digunakan Kembali, Edisi ke-2. Edisi itu diterbitkan pada tahun 2008, dan buku tersebut telah sepenuhnya direvisi pada edisi ketiga. Beberapa informasi di halaman ini mungkin sudah kedaluarsa.

Panduan penamaan yang mengikuti berlaku untuk penamaan jenis umum.

✔️ DO Kelas nama dan struktur dengan kata benda atau frasa kata benda, menggunakan PascalCasing.

Ini membedakan nama jenis dari metode, yang dinamai dengan frasa kata kerja.

✔️ DO Antarmuka nama dengan frasa kata sifat, atau kadang-kadang dengan kata benda atau frasa kata benda.

Kata benda dan frasa kata benda harus jarang digunakan dan mereka mungkin menunjukkan bahwa jenis tersebut harus menjadi kelas abstrak, dan bukan antarmuka.

❌ DO NOT beri nama kelas awalan (misalnya, "C").

✔️ CONSIDER untuk mengakhiri nama kelas turunan dengan nama kelas dasar.

Ini sangat mudah dibaca dan menjelaskan hubungan dengan jelas. Beberapa contoh ini dalam kode adalah: ArgumentOutOfRangeException, yang merupakan jenis Exception, dan SerializableAttribute, yang merupakan jenis Attribute. Namun, penting untuk menggunakan penilaian yang wajar dalam menerapkan pedoman ini; misalnya, Button kelas adalah semacam Control peristiwa, meskipun Control tidak muncul dalam namanya.

✔️ DO mama antarmuka awalan dengan huruf I, untuk menunjukkan bahwa jenisnya adalah antarmuka.

Misalnya, IComponent (kata benda deskriptif), ICustomAttributeProvider (frasa kata benda), dan IPersistable (kata sifat) adalah nama antarmuka yang sesuai. Seperti nama jenis lainnya, hindari singkatan.

✔️ DO memastikan bahwa nama hanya berbeda dengan awalan "I" pada nama antarmuka ketika Anda menentukan pasangan antarmuka kelas di mana kelas adalah implementasi standar antarmuka.

Nama parameter Jenis Generik

Generik ditambahkan ke .NET Framework 2.0. Fitur ini memperkenalkan jenis pengidentifikasi baru yang disebut parameter jenis.

✔️ DO nama parameter jenis generik dengan nama deskriptif, kecuali nama huruf tunggal sudah sepenuhnya jelas dan nama deskriptif tidak akan menambah nilai.

✔️ CONSIDER menggunakanT sebagai nama parameter jenis untuk jenis dengan satu parameter jenis huruf tunggal.

public int IComparer<T> { ... }
public delegate bool Predicate<T>(T item);
public struct Nullable<T> where T:struct { ... }

✔️ DO awalan nama parameter jenis deskriptif dengan T.

public interface ISessionChannel<TSession> where TSession : ISession {
    TSession Session { get; }
}

✔️ CONSIDER untuk menunjukkan batasan yang ditempatkan pada parameter jenis dalam nama parameter.

Misalnya, parameter yang dibatasi untuk ISession dapat disebut TSession.

Nama Jenis Umum

✔️ DO ikuti panduan yang dijelaskan dalam tabel berikut saat penamaan jenis berasal dari atau menerapkan jenis .NET Framework tertentu.

Jenis Dasar Pedoman Jenis Turunan/Penerapan
System.Attribute ✔️ DO menambahkan akhiran "Atribut" ke nama kelas atribut kustom.
System.Delegate ✔️ DO menambahkan akhiran "EventHandler" ke nama delegasi yang digunakan dalam peristiwa.

✔️ DO menambahkan akhiran "Callback" ke nama delegasi selain yang digunakan sebagai penanganan aktivitas.

❌ DO NOT menambahkan akhiran "Delegasi" ke delegasi.
System.EventArgs ✔️ DO menambahkan akhiran "EventArgs."
System.Enum ❌ DO NOT berasal dari kelas ini; gunakan kata kunci yang didukung oleh bahasa Anda sebagai gantinya; misalnya, di C#, gunakan enum kata kunci .

❌ DO NOT menambahkan akhiran "Enum" atau "Bendera."
System.Exception ✔️ DO menambahkan akhiran "Pengecualian."
IDictionary
IDictionary<TKey,TValue>
✔️ DO menambahkan akhiran "Kamus." Perhatikan bahwa IDictionary adalah jenis koleksi tertentu, tetapi pedoman ini lebih diutamakan daripada pedoman koleksi yang lebih umum yang mengikuti.
IEnumerable
ICollection
IList
IEnumerable<T>
ICollection<T>
IList<T>
✔️ DO menambahkan akhiran "Koleksi."
System.IO.Stream ✔️ DO menambahkan akhiran "Aliran."
CodeAccessPermission IPermission ✔️ DO menambahkan akhiran "Izin."

Enumerasi Penamaan

Nama jenis enumerasi (juga disebut enum) secara umum harus mengikuti aturan penamaan jenis standar (PascalCasing, dll.). Namun, ada panduan tambahan yang berlaku khusus untuk enum.

✔️ DO menggunakan nama jenis tunggal untuk enumerasi kecuali nilainya adalah bidang bit.

✔️ DO menggunakan nama jenis jamak untuk enumerasi dengan bidang bit sebagai nilai, juga disebut enum bendera.

❌ DO NOT menggunakan akhiran "Enum" dalam nama jenis enum.

❌ DO NOT menggunakan akhiran "Bendera" atau "Bendera" dalam nama jenis enum.

❌ DO NOT menggunakan awalan pada nama nilai enumerasi (misalnya, "ad" untuk enum ADO, "rtf" untuk enum teks kaya, dll.).

Portions © 2005, 2009 Microsoft Corporation. Semua hak dilindungi undang-undang.

Dicetak ulang dengan izin dari Pearson Education, Inc. dari Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition oleh Krzysztof Cwalina dan Brad Abrams, diterbitkan 22 Okt 2008 oleh Addison-Wesley Professional sebagai bagian dari Seri Pengembangan Microsoft Windows.

Lihat juga