Nazwy klas, struktur i interfejsów
Uwaga
Ta zawartość jest drukowana przez uprawnienie Pearson Education, Inc. z Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition. Wydanie to zostało opublikowane w 2008 roku, a książka została w pełni zmieniona w trzecim wydaniu. Niektóre informacje na tej stronie mogą być nieaktualne.
Wytyczne dotyczące nazewnictwa, które są stosowane do ogólnego nazewnictwa typów.
✔️ Klasy nazw i struktury DO z nounami lub frazami noun, używając PascalCasing.
Odróżnia to nazwy typów od metod, które są nazwane z frazami czasownikowymi.
✔️ Interfejsy nazw DO z frazami przymiotnikowymi lub od czasu do czasu z nounami lub frazami nounowymi.
Frazy nouns i noun powinny być rzadko używane i mogą wskazywać, że typ powinien być klasą abstrakcyjną, a nie interfejsem.
❌ NIE należy nadawać nazw klas prefiksowi (np. "C").
✔️ ROZWAŻ zakończenie nazwy klas pochodnych o nazwie klasy bazowej.
Jest to bardzo czytelne i wyraźnie wyjaśnia relację. Oto kilka przykładów tego kodu: ArgumentOutOfRangeException
, który jest rodzajem Exception
, i SerializableAttribute
, który jest rodzajem Attribute
. Należy jednak stosować rozsądny osąd w stosowaniu niniejszych wytycznych; na przykład Button
klasa jest rodzajem Control
zdarzenia, chociaż Control
nie jest wyświetlana w nazwie.
✔️ Nazwy interfejsów prefiksu DO z literą I, aby wskazać, że typ jest interfejsem.
Na przykład IComponent
(rzeczownik opisowy), ICustomAttributeProvider
(fraza rzeczownikowa) i IPersistable
(przymiotnik) to odpowiednie nazwy interfejsów. Podobnie jak w przypadku innych nazw typów, unikaj skrótów.
✔️ Upewnij się, że nazwy różnią się tylko prefiksem "I" w nazwie interfejsu podczas definiowania pary interfejsu klasy, w której klasa jest standardową implementacją interfejsu.
Nazwy parametrów typu ogólnego
Typy ogólne zostały dodane do programu .NET Framework 2.0. Funkcja wprowadziła nowy rodzaj identyfikatora o nazwie parametr typu.
✔️ Nazwa ogólna nazwy typu DO z nazwami opisowymi, chyba że jednoliterowa nazwa jest całkowicie objaśniająca, a nazwa opisowa nie doda wartości.
✔️ ROZWAŻ użycie T
jako nazwy parametru typu dla typów z jednym typem pojedynczego parametru.
public int IComparer<T> { ... }
public delegate bool Predicate<T>(T item);
public struct Nullable<T> where T:struct { ... }
✔️ Nazwy parametrów typu opisowego prefiksu DO z wartością T
.
public interface ISessionChannel<TSession> where TSession : ISession {
TSession Session { get; }
}
✔️ ROZWAŻ wskazanie ograniczeń umieszczonych na parametrze typu w nazwie parametru.
Na przykład ograniczenie ISession
parametru może być nazywane .TSession
Nazwy typowych typów
✔️ Postępuj zgodnie z wytycznymi opisanymi w poniższej tabeli podczas nazewnictwa typów pochodnych lub implementujących niektóre typy programu .NET Framework.
Typ podstawowy | Wytyczne dotyczące typu pochodnego/implementowania |
---|---|
System.Attribute |
✔️ DO dodaj sufiks "Attribute" do nazw niestandardowych klas atrybutów. |
System.Delegate |
✔️ DO dodaj sufiks "EventHandler" do nazw delegatów, które są używane w zdarzeniach. ✔️ DO dodaj sufiks "Wywołanie zwrotne" do nazw delegatów innych niż używane jako programy obsługi zdarzeń. ❌ NIE dodawaj sufiksu "Delegate" do delegata. |
System.EventArgs |
✔️ DODAJ sufiks "EventArgs". |
System.Enum |
❌ NIE należy pochodzić z tej klasy; Zamiast tego użyj słowa kluczowego obsługiwanego przez język; na przykład w języku C#użyj słowa kluczowego enum .❌ NIE dodawaj sufiksu "Wyliczenie" lub "Flaga". |
System.Exception |
✔️ DODAJ sufiks "Wyjątek". |
IDictionary IDictionary<TKey,TValue> |
✔️ DODAJ sufiks "Słownik". Należy pamiętać, że IDictionary jest to określony typ kolekcji, ale te wytyczne mają pierwszeństwo przed bardziej ogólnymi wytycznymi dotyczącymi kolekcji, które następują poniżej. |
IEnumerable ICollection IList IEnumerable<T> ICollection<T> IList<T> |
✔️ Dodaj sufiks "Kolekcja". |
System.IO.Stream |
✔️ Dodaj sufiks "Stream". |
CodeAccessPermission IPermission |
✔️ Dodaj sufiks "Uprawnienie". |
Nazewnictwo wyliczenia
Nazwy typów wyliczenia (nazywanych również wyliczeniami) powinny być ogólnie zgodne ze standardowymi regułami nazewnictwa typów (PascalCasing itp.). Istnieją jednak dodatkowe wytyczne dotyczące wyliczenia.
✔️ Do używać pojedynczej nazwy typu dla wyliczenia, chyba że jego wartości są polami bitowymi.
✔️ DO używać nazwy typu mnogiego dla wyliczenia z polami bitowymi jako wartości, nazywanej również wyliczeniem flag.
❌ NIE UŻYWAJ sufiksu "Wyliczenie" w nazwach typów wyliczenia.
❌ NIE używaj sufiksów "Flag" lub "Flags" w nazwach typów wyliczenia.
❌ NIE należy używać prefiksu w nazwach wartości wyliczenia (np. "ad" dla wyliczenia ADO, "rtf" dla wyliczenia tekstu sformatowanego itp.).
© Części 2005, 2009 Microsoft Corporation. Wszelkie prawa zastrzeżone.
Reprinted by permission of Pearson Education, Inc. from Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition by Krzysztof Cwalina and Brad Abrams, published oct 22, 2008 by Addison-Wesley Professional w ramach Microsoft Windows Development Series.