Megosztás a következőn keresztül:


Osztályok, szerkezetek és felületek neve

Feljegyzés

Ezt a tartalmat a Pearson Education, Inc. engedélyével nyomtatjuk újra a Framework Design Guidelines: Conventions, Idioms és Patterns for Reusable .NET Libraries, 2nd Edition engedélyével. 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.

✔️ DO névosztályok és szerkezetek 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.

✔️ DO előtag illesztőnevek az I betűvel, amely azt jelzi, hogy 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.

✔️ NE győződjön meg arról, hogy a nevek csak az "I" előtaggal térnek el az illesztőnéven, amikor osztály–interfész párot definiál, ahol az osztály az interfész szabványos implementációja.

Általános típusú paraméterek nevei

A 2.0-s .NET-keretrendszer generikusok lettek hozzáadva. A szolgáltatás bevezetett egy új típusú azonosítót, a típusparamétert.

✔️ Do name generic type parameters with descriptive names, kivéve, ha egy egybetűs név teljesen magától értetődő, és egy leíró név nem ad értéket.

✔️ FONTOLJA meg, hogy egy egybetűs típusparaméterrel rendelkező típusok típusparaméterének neveként használja T .

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.

Előfordulhat például, hogy egy paraméter meghívása ISessionTSessionkorlátozott.

Gyakori típusok nevei

✔️ A DO kövesse az alábbi táblázatban leírt irányelveket, amikor bizonyos .NET-keretrendszer tí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.

✔️ A DO adja hozzá a "Visszahívás" utótagot az eseménykezelőkhöz nem használt meghatalmazottak nevéhez.

❌ NE adja hozzá a "Delegált" utótagot a meghatalmazotthoz.
System.EventArgs ✔️ DO adja hozzá 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 ✔️ DO adja hozzá a "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 ✔️ DO adja hozzá az "Engedély" utótagot.

Enumerálások elnevezése

Az enumerálási típusok (más néven enumerálás) neveinek általában a szokásos típuselnevezési szabályokat kell követnie (PascalCasing stb.). Vannak azonban további irányelvek, amelyek kifejezetten az enumerálásra vonatkoznak.

✔️ A DO az enumeráláshoz használjon egyedi típusnevet, kivéve, ha az értékei 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álási értéknevekhez (például "ad" az ADO-számokat, az "rtf" rich text enumerálásokat stb.).

© Részletek 2005, 2009 Microsoft Corporation. Minden jog fenntartva.

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 22, 2008 by Addison-Wesley Professional, a Microsoft Windows Development Series részeként.

Lásd még