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


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow