Konwencje dotyczące wielkości liter
Uwaga
Ta zawartość jest drukowana przez uprawnienie Pearson Education, Inc. z Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition. 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 w tym rozdziale określają prostą metodę użycia, która w przypadku spójnego stosowania sprawia, że identyfikatory typów, składowych i parametrów są łatwe do odczytania.
Reguły wielkich liter dla identyfikatorów
Aby odróżnić wyrazy w identyfikatorze, należy wielką literę każdego wyrazu w identyfikatorze. Nie należy używać podkreśleń do rozróżniania wyrazów lub w tym przypadku w dowolnym miejscu w identyfikatorach. Istnieją dwa odpowiednie sposoby tworzenia wielkich liter identyfikatorów w zależności od użycia identyfikatora:
PascalCasing
camelCasing
Konwencja PascalCasing, używana dla wszystkich identyfikatorów z wyjątkiem nazw parametrów, wielką literą pierwszego znaku każdego słowa (w tym akronimami o długości dwóch liter), jak pokazano w poniższych przykładach:
PropertyDescriptor
HtmlTag
Specjalny przypadek jest wykonany dla dwuliterowych akronimów, w których obie litery są pisane wielkimi literami, jak pokazano w następującym identyfikatorze:
IOStream
Konwencja camelCasing, używana tylko dla nazw parametrów, wielką literą pierwszego znaku każdego wyrazu z wyjątkiem pierwszego słowa, jak pokazano w poniższych przykładach. Jak pokazano w przykładzie, dwuliterowe akronimy rozpoczynające identyfikator camel-cased są małymi literami.
propertyDescriptor
ioStream
htmlTag
✔️ Należy użyć PascalCasing dla wszystkich publicznych nazw elementów członkowskich, typów i przestrzeni nazw składających się z wielu wyrazów.
✔️ DO używać camelCasing dla nazw parametrów.
W poniższej tabeli opisano reguły tworzenia liter dla różnych typów identyfikatorów.
Identyfikator | Wielkość liter | Przykład |
---|---|---|
Przestrzeń nazw | Pascal | namespace System.Security { ... } |
Typ | Pascal | public class StreamReader { ... } |
Interfejs | Pascal | public interface IEnumerable { ... } |
Method | Pascal | public class Object { public virtual string ToString(); } |
Właściwości | Pascal | public class String { public int Length { get; } } |
Zdarzenie | Pascal | public class Process { public event EventHandler Exited; } |
Pole | Pascal | public class MessageQueue { public static readonly TimeSpan InfiniteTimeout; } public struct UInt32 { public const Min = 0; } |
Wartość wyliczenia | Pascal | public enum FileMode { Append, ... } |
Parametr | Camel | public class Convert { public static int ToInt32(string value); } |
Wielkie litery wyrazów złożonych i typowych terminów
Większość złożonych terminów jest traktowana jako pojedyncze wyrazy na potrzeby wielkich liter.
❌ NIE wielką literą każdego wyrazu w wyrazach złożonych o tak zwanej postaci zamkniętej.
Są to wyrazy złożone napisane jako pojedyncze słowo, takie jak punkt końcowy. Na potrzeby wytycznych dotyczących wielkości liter należy traktować słowo złożone w postaci zamkniętej jako pojedyncze słowo. Użyj bieżącego słownika, aby określić, czy słowo złożone jest pisane w postaci zamkniętej.
Pascal | Camel | 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 |
Ważność wielkości liter
Języki, które mogą być uruchamiane w środowisku CLR, nie są wymagane do obsługi poufności przypadków, chociaż niektóre z nich to robią. Nawet jeśli twój język go obsługuje, inne języki, które mogą uzyskiwać dostęp do platformy, nie. W związku z tym wszystkie interfejsy API, które są dostępne zewnętrznie, nie mogą polegać tylko na wielkości liter, aby odróżnić dwie nazwy w tym samym kontekście.
❌ NIE zakładaj, że w przypadku wszystkich języków programowania jest rozróżniana wielkość liter. Nie jest to prawdą. Nazwy nie mogą się różnić w zależności od wielkości liter.
© Części 2005, 2009 Microsoft Corporation. Wszelkie prawa zastrzeżone.
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 oct 22, 2008 by Addison-Wesley Professional w ramach Microsoft Windows Development Series.