Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megjegyzés:
Ezt a tartalmat a Pearson Education, Inc. engedélyével nyomtatjuk újra a Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition című műből. Ezt a kiadást 2008-ban adták ki, és a könyvet azóta teljesen átdolgozták a harmadik kiadásban. Előfordulhat, hogy az oldalon található információk némelyike elavult.
Az általános típuselnevezésre az alábbi elnevezési irányelvek vonatkoznak.
✔️ Nevezd el az osztályokat és struktúrákat főnevekkel vagy főnévi kifejezésekkel a PascalCasing használatával.
Ez megkülönbözteti a típusneveket a metódusoktól, amelyek igekifejezésekkel vannak elnevezve.
✔️ DO névkapcsolatok melléknevekkel, vagy esetenként főnévvel vagy főnévvel.
A főneveket és főnévi kifejezéseket ritkán kell használni, és ezek azt jelezhetik, hogy a típusnak absztrakt osztálynak kell lennie, nem pedig interfésznek.
❌ NE adjon előtagot az osztályneveknek (pl. "C").
✔️ VEGYE FIGYELEMBE, hogy a származtatott osztályok neve az alaposztály nevével végződik.
Ez nagyon olvasható, és világosan elmagyarázza a kapcsolatot. Néhány példa erre a kódban: ArgumentOutOfRangeException
, ami egyfajta Exception
, és SerializableAttribute
, ami egyfajta Attribute
. Fontos azonban, hogy ésszerű ítéletet alkalmazzunk ennek az iránymutatásnak az alkalmazása során; Például az Button
osztály egyfajta Control
esemény, bár Control
nem jelenik meg a nevében.
✔️ Prefixeld az interfészneveket az "I" betűvel, hogy jelezd, a típus egy interfész.
Például a IComponent
(leíró főnév), ICustomAttributeProvider
a (főnévi kifejezés) és IPersistable
a (melléknév) megfelelő felületnevek. A többi típusnévhez hasonlóan kerülje a rövidítéseket.
✔️ Győződjön meg arról, hogy a nevek csak az "I" előtagban különböznek az interfésznévtől, amikor egy osztály–interfész párt definiál, ahol az osztály az interfész szabványos implementációja.
Általános típusú paraméterek nevei
A .NET-keretrendszer 2.0-s verziója általános fájlokkal bővült. A szolgáltatás bevezetett egy új típusú azonosítót, a típusparamétert.
✔️ Nevezze el az általános típusparamétereket leíró nevekkel, kivéve, ha egy egybetűs név teljesen magától értetődő, és a leíró név nem adna további értéket.
✔️ Fontolja meg a T
használatát az egybetűs típusparaméterrel rendelkező típusok esetében a típusparaméter neveként.
public int IComparer<T> { ... }
public delegate bool Predicate<T>(T item);
public struct Nullable<T> where T:struct { ... }
✔️ DO előtag leíró típusú paraméternevek a következővel T
: .
public interface ISessionChannel<TSession> where TSession : ISession {
TSession Session { get; }
}
✔️ VEGYE FIGYELEMBE a paraméter nevében egy típusparaméterre vonatkozó korlátozásokat.
Például egy olyan paraméter, amely ISession
-re van korlátozva, elnevezhető TSession
-nek.
Gyakori típusok nevei
✔️ A DO kövesse az alábbi táblázatban leírt irányelveket, amikor bizonyos .NET-keretrendszertípusokból származó vagy implementált elnevezési típusokat használ.
Alaptípus | Származtatott/implementálási típus – útmutató |
---|---|
System.Attribute |
✔️ A DO adja hozzá az "Attribútum" utótagot az egyéni attribútumosztályok nevéhez. |
System.Delegate |
✔️ A DO adja hozzá az "EventHandler" utótagot az eseményekben használt meghatalmazottak nevéhez. ✔️ Feltétlenül adja hozzá a "Visszahívás" utótagot azokhoz a meghatalmazottakhoz, amelyeket nem eseménykezelőként használnak. ❌ NE adja hozzá a "Delegált" utótagot a meghatalmazotthoz. |
System.EventArgs |
✔️ Tegye az "EventArgs" utótagot. |
System.Enum |
❌ NE származtasd ebből az osztályból; használja inkább a nyelv által támogatott kulcsszót; Például a C#-ban használja a kulcsszót enum .❌ NE adja hozzá az "Enum" vagy a "Flag" utótagot. |
System.Exception |
✔️ MINDENKÉPP adjunk hozzá az "Exception" utótagot. |
IDictionary IDictionary<TKey,TValue> |
✔️ DO adja hozzá a "Szótár" utótagot. Vegye figyelembe, hogy IDictionary ez egy adott gyűjteménytípus, de ez az útmutató elsőbbséget élvez az alábbi általánosabb gyűjtemények iránymutatásával szemben. |
IEnumerable ICollection IList IEnumerable<T> ICollection<T> IList<T> |
✔️ ADJA hozzá a "Gyűjtemény" utótagot. |
System.IO.Stream |
✔️ DO adja hozzá a „Stream” utótagot. |
CodeAccessPermission IPermission |
✔️ A "Engedély" utótagot hozzá kell adni. |
Enumerálások elnevezése
Az enumerálási típusok (más néven enumok) neveinek általában a szokásos típuselnevezési szabályokat kell követniük (PascalCasing stb.). Vannak azonban további irányelvek, amelyek kifejezetten az enumerálásra vonatkoznak.
✔️ Az enumerálás esetén használjon egyes típusnevet, kivéve, ha az értékek bitmezők.
✔️ A DO függvény többes számú típusnevet használ a bitmezőket értékként tartalmazó enumeráláshoz, más néven jelzők számbavételéhez.
❌ NE használjon "Enum" utótagot számtípusnevekben.
❌ NE használja a "Flag" vagy a "Flags" utótagokat számtípusnevekben.
❌ NE használjon előtagot az enumerált értéknevekhez (például "ad" az ADO-enumokhoz, "rtf" a rich text enumokhoz stb.).
© Részletek 2005, 2009 Microsoft Corporation. Minden jog fenntartva.
Újranyomva a Pearson Education, Inc. engedélyével, Krzysztof Cwalina és Brad Abrams Framework Design Guidelines: Konvenciók, Idiomák és Minták az Újrafelhasználható .NET Könyvtárak Számára, 2. kiadás című könyvéből, közzétéve 2008. október 22-én, a Addison-Wesley Professional által, a Microsoft Windows Fejlesztési Sorozat részeként.