Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Anmärkning
Det här innehållet skrivs om med behörighet från Pearson Education, Inc. från Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition. Den utgåvan publicerades 2008, och boken har sedan dess reviderats helt i den tredje utgåvan. En del av informationen på den här sidan kan vara inaktuell.
Namngivningsriktlinjerna som följer gäller för namngivning av allmän typ.
✔️ Namnge klasser och strukturer med substantiv eller substantivfraser, genom PascalCasing.
Detta skiljer typnamn från metoder som namnges med verbfraser.
✔️ Namnge gränssnitt med adjektivfraser, eller ibland med substantiv eller substantivfraser.
Substantiv och substantivfraser bör användas sällan och de kan tyda på att typen ska vara en abstrakt klass och inte ett gränssnitt.
❌ Ge INTE klassnamn ett prefix (t.ex. "C").
✔️ ÖVERVÄG att avsluta namnet på härledda klasser med namnet på basklassen.
Detta är mycket läsbart och förklarar relationen tydligt. Några exempel på detta i kod är: ArgumentOutOfRangeException, som är en typ av Exception, och SerializableAttribute, som är en typ av Attribute. Det är dock viktigt att använda rimlig bedömning vid tillämpningen av denna riktlinje. Klassen är till exempel Button en typ av Control händelse, men Control visas inte i dess namn.
✔️ ANVÄND bokstaven I för att inleda gränssnittsnamn och visa att typen är ett gränssnitt.
Till exempel IComponent (beskrivande substantiv), ICustomAttributeProvider (substantivfras) och IPersistable (adjektiv) är lämpliga gränssnittsnamn. Precis som med andra typnamn bör du undvika förkortningar.
✔️ Se till att namnen endast skiljer sig åt med prefixet "I" på gränssnittsnamnet när du definierar ett class-interface-par där klassen är en standardimplementering av gränssnittet.
Namn på generiska typparametrar
Generics lades till i .NET Framework 2.0. Funktionen introducerade en ny typ av identifierare som kallas typparameter.
✔️ Ge generiska typparametrar beskrivande namn såvida inte ett namn med en bokstav är helt självförklarande och ett beskrivande namn inte skulle tillföra värde.
✔️ ÖVERVÄG att använda T som typparameternamn för typer med en parameter av typen enkel bokstav.
public int IComparer<T> { ... }
public delegate bool Predicate<T>(T item);
public struct Nullable<T> where T:struct { ... }
✔️ DO prefixa beskrivande typparameternamn med T.
public interface ISessionChannel<TSession> where TSession : ISession {
    TSession Session { get; }
}
✔️ ÖVERVÄG att ange begränsningar för en typparameter i parameterns namn.
En parameter som är begränsad till ISession kan till exempel anropas TSession.
Namn på vanliga typer
✔️ Följ riktlinjerna som beskrivs i följande tabell när du namnger typer som härletts från eller implementerar vissa .NET Framework-typer.
| Bastyp | Riktlinje för härledda/implementeringstyper | 
|---|---|
| System.Attribute | ✔️ Lägg till suffixet "Attribute" i namnen på anpassade attributklasser. | 
| System.Delegate | ✔️ Lägg till suffixet "EventHandler" i namnen på de ombud som används i händelser. ✔️ Lägg till suffixet "Motringning" i namn på andra ombud än de som används som händelsehanterare. ❌ Lägg INTE till suffixet "Delegate" till en delegat. | 
| System.EventArgs | ✔️ Lägg till suffixet "EventArgs". | 
| System.Enum | ❌ HÄRLED INTE från den här klassen; använd nyckelordet som stöds av ditt språk i stället. Använd till exempel nyckelordet enumi C#.❌ Lägg INTE till suffixet "Enum" eller "Flagga". | 
| System.Exception | ✔️ Lägg till suffixet "Exception". | 
| IDictionaryIDictionary<TKey,TValue> | ✔️ Lägg till suffixet "Dictionary". Observera att det IDictionaryär en specifik typ av samling, men den här rekommendationen har företräde framför de mer allmänna rekommendationerna för samlingar som följer. | 
| IEnumerableICollectionIListIEnumerable<T>ICollection<T>IList<T> | ✔️ Lägg till suffixet "Samling". | 
| System.IO.Stream | ✔️ Lägg till suffixet "Stream". | 
| CodeAccessPermission IPermission | ✔️ Lägg till suffixet "Behörighet". | 
Namngivning av uppräkningar
Namn på uppräkningstyper (även kallade enums) bör generellt följa de standardiserade reglerna för typnamngivning (exempelvis PascalCasing). Det finns dock ytterligare riktlinjer som gäller specifikt för uppräkningar.
✔️ Använd ett namn av singulartyp för en uppräkning såvida inte dess värden är bitfält.
✔️ Använd ett pluralt typnamn för en uppräkning med bitfält som värden, även kallad flagguppräkning.
❌ Använd INTE suffixet "Enum" i namn för uppräkningstyper.
❌ Använd INTE suffixen "Flagga" eller "Flaggor" i namn på uppräkningstyper.
❌ Använd INTE ett prefix på uppräkningsvärdenamn (t.ex. "ad" för ADO-uppräkningar, "rtf" för rtf-uppräkningar osv.).
Portioner © 2005, 2009 Microsoft Corporation. Alla rättigheter reserverade.
Återtryckt med tillstånd från Pearson Education, Inc. från Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition av Krzysztof Cwalina och Brad Abrams, publicerades den 22 oktober 2008 av Addison-Wesley Professional som en del av Microsoft Windows Development Series.