Udostępnij za pośrednictwem


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.

Zobacz też