Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.