Udostępnij za pomocą


Nazwy klas, struktur i interfejsów

Uwaga / Notatka

Ta treść jest przedrukowana za zgodą Pearson Education, Inc. z Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2. wydanie. 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 stosowane do ogólnego nazewnictwa typów.

✔️ Należy nazywać klasy i struktury za pomocą rzeczowników lub fraz rzeczownikowych, używając PascalCasing.

Odróżnia to nazwy typów od metod, które są nazwane z frazami czasownikowymi.

✔️ Nazywaj interfejsy za pomocą fraz przymiotnikowych lub, od czasu do czasu, rzeczowników lub fraz rzeczownikowych.

Frazy rzeczownikowe i rzeczowniki powinny być używane rzadko, ponieważ mogą sugerować, że typ powinien być klasą abstrakcyjną, a nie interfejsem.

❌ NIE należy nadawać nazw klas prefiksowi (np. "C").

✔️ ROZWAŻ zakończenie nazw klas pochodnych nazwą 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 przy stosowaniu tych wytycznych; na przykład klasa Button jest rodzajem zdarzenia Control, mimo że Control nie pojawia się w nazwie.

✔️ DO nazw interfejsów dodawaj prefiks "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.

✔️ Należy nazwać ogólne parametry typu nazwami opisowymi, chyba że jednoliterowa nazwa jest zrozumiała bez dodatkowych wyjaśnień i nazwa opisowa nie dodałaby wartości.

✔️ ROZWAŻ użycie T jako nazwy parametru typu dla typów z jednym jednoznakowym parametrem typu.

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

✔️ Stosuj prefiks dla nazw parametrów typu opisowego 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 parametr ograniczony do ISession może być nazywany 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 lub implementacji
System.Attribute ✔️ Należy dodać sufiks "Attribute" do nazw niestandardowych klas atrybutów.
System.Delegate ✔️ NALEŻY dodać sufiks "EventHandler" do nazw delegatów używanych w zdarzeniach.

✔️ DO dodaj sufiks "Callback" 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 "Enum" 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 enumeracji

Nazwy enumów (nazywanych również wyliczeniami) powinny być zawsze zgodne ze standardowymi regułami nazewnictwa typów (PascalCasing itp.). Istnieją jednak dodatkowe wytyczne dotyczące enumów.

✔️ Używaj 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 "enum" w nazwach typów wyliczenia.

❌ NIE używaj sufiksów "Flag" lub "Flags" w nazwach typów wyliczeniowych.

❌ 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.

Przedrukowane za zgodą Pearson Education, Inc. z Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition przez Krzysztofa Cwalinę i Brada Abramsa, opublikowane 22 października 2008 przez Addison-Wesley Professional w ramach serii Microsoft Windows Development.

Zobacz także