C# Language
Konwencje nazewnictwa
Szukaj…
Wprowadzenie
W tym temacie przedstawiono niektóre podstawowe konwencje nazewnictwa stosowane podczas pisania w języku C #. Jak wszystkie konwencje, nie są one wymuszane przez kompilator, ale zapewnią czytelność między programistami.
Wyczerpujące wytyczne dotyczące projektowania .NET Framework znajdują się na docs.microsoft.com/dotnet/standard/design-guidelines .
Uwagi
Wybierz łatwo czytelne nazwy identyfikatorów
Na przykład właściwość o nazwie HorizontalAlignment jest bardziej czytelna w języku angielskim niż AlignmentHorizontal.
Lepsza czytelność niż zwięzłość
Nazwa właściwości CanScrollHorizontally
jest lepsza niż ScrollableX
(niejasne odniesienie do osi X).
Unikaj używania znaków podkreślenia, łączników lub innych znaków innych niż alfanumeryczne.
Nie używać notacji węgierskiej
Notacja węgierska polega na włączaniu przedrostków do identyfikatorów w celu zakodowania niektórych metadanych dotyczących parametru, takich jak typ danych identyfikatora, np. string strName
.
Unikaj także używania identyfikatorów, które powodują konflikty ze słowami kluczowymi już używanymi w C #.
Skróty i akronimy
Zasadniczo nie należy używać skrótów ani akronimów; dzięki temu twoje imiona są mniej czytelne. Podobnie trudno jest ustalić, kiedy można bezpiecznie założyć, że akronim jest powszechnie rozpoznawany.
Konwencje wielkich liter
Poniższe terminy opisują różne sposoby identyfikowania wielkości liter.
Obudowa Pascal
Pierwsza litera w identyfikatorze i pierwsza litera każdego kolejnego połączonego słowa są pisane wielkimi literami. Możesz użyć wielkości Pascala dla identyfikatorów trzech lub więcej znaków. Na przykład: BackColor
Obudowa wielbłąda
Pierwsza litera identyfikatora jest pisana małymi literami, a pierwsza litera każdego kolejnego połączonego słowa jest wielka. Na przykład: backColor
Duże litery
Wszystkie litery w identyfikatorze są wielkie litery. Na przykład: IO
Zasady
Gdy identyfikator składa się z wielu słów, nie używaj separatorów, takich jak podkreślniki („_”) lub łączniki („-”), między słowami. Zamiast tego użyj znaku, aby wskazać początek każdego słowa.
W poniższej tabeli podsumowano reguły wielkich liter dla identyfikatorów i podano przykłady różnych typów identyfikatorów:
Identyfikator | Walizka | Przykład |
---|---|---|
Zmienna lokalna | Wielbłąd | carName |
Klasa | Pascal | AppDomain |
Rodzaj wyliczenia | Pascal | ErrorLevel |
Wartości wyliczeniowe | Pascal | Błąd krytyczny |
Zdarzenie | Pascal | ValueChanged |
Klasa wyjątków | Pascal | WebException |
Pole statyczne tylko do odczytu | Pascal | RedValue |
Berło | Pascal | IDisposable |
metoda | Pascal | ToString |
Przestrzeń nazw | Pascal | System.Drawing |
Parametr | Wielbłąd | Wpisz imię |
własność | Pascal | BackColor |
Więcej informacji można znaleźć na MSDN .
Interfejsy
Interfejsy należy nazwać rzeczownikami lub frazami rzeczownikowymi lub przymiotnikami opisującymi zachowanie. Na przykład IComponent
używa rzeczownika opisowego, ICustomAttributeProvider
używa wyrażenia rzeczownikowego, a IPersistable
używa przymiotnika.
Nazwy interfejsów powinny być poprzedzone literą I
, aby wskazać, że typ jest interfejsem i należy użyć wielkości Pascala.
Poniżej są poprawnie nazwane interfejsy:
public interface IServiceProvider
public interface IFormatable
Pola prywatne
Istnieją dwie wspólne konwencje dla pól prywatnych: camelCase
i _camelCaseWithLeadingUnderscore
.
Futerał wielbłąda
public class Rational
{
private readonly int numerator;
private readonly int denominator;
public Rational(int numerator, int denominator)
{
// "this" keyword is required to refer to the class-scope field
this.numerator = numerator;
this.denominator = denominator;
}
}
Etui na wielbłąda z podkreśleniem
public class Rational
{
private readonly int _numerator;
private readonly int _denominator;
public Rational(int numerator, int denominator)
{
// Names are unique, so "this" keyword is not required
_numerator = numerator;
_denominator = denominator;
}
}
Przestrzenie nazw
Ogólny format przestrzeni nazw to:
<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>].
Przykłady zawierają:
Fabrikam.Math
Litware.Security
Prefiksowanie nazw przestrzeni nazw nazwą firmy zapobiega temu, aby przestrzenie nazw różnych firm miały tę samą nazwę.
Enums
Używaj pojedynczej nazwy dla większości Enums
public enum Volume
{
Low,
Medium,
High
}
Użyj liczby mnogiej dla typów Enum, które są polami bitowymi
[Flags]
public enum MyColors
{
Yellow = 1,
Green = 2,
Red = 4,
Blue = 8
}
Uwaga: Zawsze dodawaj FlagsAttribute
do pola bitowego typu Enum.
Nie dodawaj „” enum jako przyrostek
public enum VolumeEnum // Incorrect
Nie używać nazwy enum w każdej pozycji
public enum Color
{
ColorBlue, // Remove Color, unnecessary
ColorGreen,
}
Wyjątki
Dodaj „wyjątek” jako sufiks
Niestandardowe nazwy wyjątków powinny być opatrzone sufiksem „-Exception”.
Poniżej są poprawnie nazwane wyjątki:
public class MyCustomException : Exception
public class FooException : Exception