Versaler
Kommentar
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.
Riktlinjerna i det här kapitlet beskriver en enkel metod för att använda fall som, när de tillämpas konsekvent, gör identifierare för typer, medlemmar och parametrar lätta att läsa.
Versaler för identifierare
Om du vill särskilja ord i en identifierare, versalerar du den första bokstaven i varje ord i identifieraren. Använd inte understreck för att särskilja ord, eller för den delen någonstans i identifierare. Det finns två lämpliga sätt att dra nytta av identifierare, beroende på hur identifieraren används:
PascalCasing
camelCasing
PascalCasing-konventionen, som används för alla identifierare utom parameternamn, versalerar det första tecknet för varje ord (inklusive förkortningar över två bokstäver i längd), enligt följande exempel:
PropertyDescriptor
HtmlTag
Ett specialfall görs för förkortningar med två bokstäver där båda bokstäverna är versaler, enligt följande identifierare:
IOStream
CamelCasing-konventionen, som endast används för parameternamn, versaliserar det första tecknet för varje ord utom det första ordet, som visas i följande exempel. Som exemplet också visar är tvåbokstavsakronymer som påbörjar en kamelkaderad identifierare båda gemener.
propertyDescriptor
ioStream
htmlTag
✔️ ANVÄND PascalCasing för alla offentliga medlems-, typ- och namnområdesnamn som består av flera ord.
✔️ ANVÄND camelCasing för parameternamn.
I följande tabell beskrivs versaler för olika typer av identifierare.
Identifierare | Skiftläge | Exempel |
---|---|---|
Namnområde | Pascal | namespace System.Security { ... } |
Typ | Pascal | public class StreamReader { ... } |
Gränssnitt | Pascal | public interface IEnumerable { ... } |
Metod | Pascal | public class Object { public virtual string ToString(); } |
Property | Pascal | public class String { public int Length { get; } } |
Event | Pascal | public class Process { public event EventHandler Exited; } |
Fält | Pascal | public class MessageQueue { public static readonly TimeSpan InfiniteTimeout; } public struct UInt32 { public const Min = 0; } |
Uppräknat värde | Pascal | public enum FileMode { Append, ... } |
Parameter | Initial versal | public class Convert { public static int ToInt32(string value); } |
Versalisera sammansatta ord och vanliga termer
De flesta sammansatta termer behandlas som enkla ord för versaler.
❌ Versalera INTE varje ord i så kallade slutna sammansatta ord.
Det här är sammansatta ord som skrivs som ett enda ord, till exempel slutpunkt. I syfte att hölje riktlinjer, behandla en sluten form sammansatta ord som ett enda ord. Använd en aktuell ordlista för att avgöra om ett sammansatt ord skrivs i stängt format.
Pascal | Initial versal | Not |
---|---|---|
BitFlag |
bitFlag |
Bitflag |
Callback |
callback |
CallBack |
Canceled |
canceled |
Cancelled |
DoNot |
doNot |
Don't |
Email |
email |
EMail |
Endpoint |
endpoint |
EndPoint |
FileName |
fileName |
Filename |
Gridline |
gridline |
GridLine |
Hashtable |
hashtable |
HashTable |
Id |
id |
ID |
Indexes |
indexes |
Indices |
LogOff |
logOff |
LogOut |
LogOn |
logOn |
LogIn |
Metadata |
metadata |
MetaData, metaData |
Multipanel |
multipanel |
MultiPanel |
Multiview |
multiview |
MultiView |
Namespace |
namespace |
NameSpace |
Ok |
ok |
OK |
Pi |
pi |
PI |
Placeholder |
placeholder |
PlaceHolder |
SignIn |
signIn |
SignOn |
SignOut |
signOut |
SignOff |
UserName |
userName |
Username |
WhiteSpace |
whiteSpace |
Whitespace |
Writable |
writable |
Writeable |
Skiftlägeskänslighet
Språk som kan köras på CLR krävs inte för att stödja skiftlägeskänslighet, även om vissa gör det. Även om ditt språk stöder det, gör inte andra språk som kan komma åt ditt ramverk. Alla API:er som är externt tillgängliga kan därför inte enbart använda skiftläge för att skilja mellan två namn i samma kontext.
❌ Anta INTE att alla programmeringsspråk är skiftlägeskänsliga. Det sker inte. Namn kan inte skilja sig åt från fall till fall.
Portioner © 2005, 2009 Microsoft Corporation. Med ensamrätt.
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, publicerad 22 okt 2008 av Addison-Wesley Professional som en del av Microsoft Windows Development Series.