Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Reguły języka w stylu kodu wpływają na sposób użycia różnych konstrukcji języków programowania .NET, na przykład modyfikatorów i nawiasów.
Ta kategoria zawiera również reguły identyfikujące części bazy kodu, które są niepotrzebne i mogą być refaktoryzowane lub usuwane. Obecność niepotrzebnego kodu wskazuje co najmniej jeden z następujących problemów:
- Czytelność: kod, który niepotrzebnie obniża czytelność.
- Łatwość konserwacji: kod, który po refaktoryzacji nie jest już używany, a mimo to jest niepotrzebnie utrzymywany.
- Wydajność: Niepotrzebne obliczenia, które nie mają skutków ubocznych i prowadzą do niepotrzebnych obciążeń związanych z wydajnością.
- Funkcjonalność: problem funkcjonalny w kodzie, który sprawia, że wymagany kod jest nadmiarowy. Na przykład IDE0060 flaguje nieużywane parametry, w których metoda przypadkowo ignoruje parametr wejściowy.
Reguły języka należą do następujących kategorii:
- Reguły stylu platformy .NET: reguły dotyczące języków C# i Visual Basic. Nazwy opcji dla tych reguł zaczynają się od prefiksu
dotnet_style_
. - Reguły stylu języka C#: reguły specyficzne dla kodu C#. Nazwy opcji dla tych reguł zaczynają się od prefiksu
csharp_style_
. - Reguły stylu języka Visual Basic: reguły specyficzne dla kodu Języka Visual Basic. Nazwy opcji dla tych reguł zaczynają się od prefiksu
visual_basic_style_
.
Format opcji
Wiele reguł języka ma co najmniej jedną skojarzną opcję dostosowywania preferowanego stylu. Na przykład użyj prostej instrukcji "using" (IDE0063) ma skojarzoną opcję csharp_prefer_simple_using_statement
, która umożliwia określenie, czy wolisz deklarację using
, czy instrukcję using
. Reguła wymusza wybrane opcje na określonym poziomie, na przykład ostrzeżenie lub błąd.
Opcje reguł języka można określić w pliku konfiguracji o następującym formacie:
option_name = value
(Visual Studio 2019 i nowsze)
lub
option_name = value:severity
Wartość
Dla każdej reguły języka należy określić wartość, która określa, czy lub kiedy wolisz styl. Wiele reguł akceptuje wartość
true
(preferuj ten styl) lubfalse
(nie preferuj tego stylu). Inne reguły akceptują wartości, takie jakwhen_on_single_line
lubnever
.Ważność (opcjonalnie w programie Visual Studio 2019 i nowszych wersjach)
Druga część reguły określa poziom ważności reguły. W wersjach .NET 9 i nowszych ważność jest zawsze przestrzegana — czyli wewnątrz środowisk IDE programowania i podczas kompilacji wiersza polecenia. W programie .NET 8 i starszych wersjach to ustawienie ważności jest przestrzegane tylko w środowiskach IDE programowania, takich jak Visual Studio, a nie podczas kompilacji.
Jeśli używasz zestawu .NET 8 SDK lub starszej wersji i chcesz, aby poziom ważności był respektowany podczas budowania, możesz to zrobić na jeden z dwóch sposobów:
- Ustaw właściwość < na > lub wyższą lub na .
- Ustaw poziom ważności, korzystając z składni konfiguracji opartej na identyfikatorze reguły dla analizatorów. Składnia przyjmuje postać
dotnet_diagnostic.<rule ID>.severity = <severity>
, na przykładdotnet_diagnostic.IDE0040.severity = warning
. Aby uzyskać więcej informacji, zobacz poziom istotności.
Napiwek
Począwszy od programu Visual Studio 2019, można skonfigurować reguły stylu kodu z menu żarówki Szybkie akcje gdy naruszenie stylu zostanie wykryte.
Indeks reguł
Język i niepotrzebne reguły kodu są dodatkowo podzielone na podkategorie, takie jak preferencje na poziomie wyrażenia, preferencje bloku kodu i preferencje modyfikatora.
-
using
preferencje dyrektywy - Preferencje bloku kodu
- Człony wyrażeniowe
- Preferencje na poziomie wyrażeń
- Preferencje pól
- Preferencje dotyczące słów kluczowych języka a typów struktur
- Preferencje modyfikatora
- Preferencje nowego wiersza
- Preferencje sprawdzania wartości null
- Preferencje parametrów
- Preferencje nawiasów
- Preferencje dopasowywania wzorców
- Preferencje pomijania
-
This.
ime.
preferencje -
var
preferencje
using
preferencje dotyczące dyrektyw
Reguły stylu platformy .NET (C# i Visual Basic):
Reguły stylu języka C#:
Preferencje bloku kodu
Reguły stylu języka C#:
- Dodawanie nawiasów klamrowych (IDE0011)
- Użyj prostej instrukcji "using" (IDE0063)
- Preferencje deklaracji przestrzeni nazw (IDE0160, IDE0161)
- Usuwanie niepotrzebnego wyrażenia lambda (IDE0200)
- Przekształć na instrukcje najwyższego poziomu (IDE0210)
- Konwertuj na program stylu "Program.Main" (IDE0211)
- Używanie konstruktora podstawowego (IDE0290)
- Preferuj opcję "System.Threading.Lock" (IDE0330)
Członkowie zdefiniowane za pomocą wyrażeń
Reguły stylu języka C#:
- Używanie treści wyrażenia dla konstruktorów (IDE0021)
- Używanie treści wyrażenia dla metod (IDE0022)
- Używanie treści wyrażenia dla operatorów (IDE0023, IDE0024)
- Używanie treści wyrażenia dla właściwości (IDE0025)
- Używanie treści wyrażenia dla indeksatorów (IDE0026)
- Używanie treści wyrażenia dla metod dostępu (IDE0027)
- Używanie treści wyrażenia dla lambd (IDE0053)
- Używanie treści wyrażenia dla funkcji lokalnych (IDE0061)
Preferencje na poziomie wyrażeń
Reguły stylu platformy .NET (C# i Visual Basic):
- Uprość nazwę (IDE0001)
- Uproszczenie dostępu do składowych (IDE0002)
- Usuń niepotrzebne rzutowanie (IDE0004)
- Dodaj brakujące przypadki w instrukcji switch (IDE0010)
- Używanie inicjatorów obiektów (IDE0017)
- Używanie inicjatorów kolekcji (IDE0028)
- Sprawdzanie wartości null można uprościć (IDE0029, IDE0030, IDE0270)
- Używanie propagacji wartości null (IDE0031)
- Używanie automatycznie zaimplementowanej właściwości (IDE0032)
- Użyj jawnie podanej nazwy krotki (IDE0033)
- Usuwanie nieochwytnego kodu (IDE0035)
- Użyj wywnioskowanych nazw członków (IDE0037)
- Użyj sprawdzania "is null" (IDE0041)
- Używanie wyrażenia warunkowego do przypisania (IDE0045)
- Użyj wyrażenia warunkowego do zwracania (IDE0046)
- Konwersja typu anonimowego na krotkę (IDE0050)
- Usuń nieużywany prywatny członek (IDE0051)
- Usuń nieprzeczytany prywatny członek (IDE0052)
- Używanie przypisania złożonego (IDE0054, IDE0074)
- Usuń niepotrzebną wartość wyrażenia (IDE0058)
- Usuwanie niepotrzebnego przypisania wartości (IDE0059)
- Użyj 'System.HashCode.Combine' (IDE0070)
- Upraszczanie interpolacji (IDE0071)
- Uproszczenie wyrażenia warunkowego (IDE0075)
-
Konwertowanie
typeof
nanameof
(IDE0082) - Usuwanie niepotrzebnego operatora równości (IDE0100)
- Uproszczenie wyrażenia LINQ (IDE0120)
- Przestrzeń nazw nie jest zgodna ze strukturą folderów (IDE0130)
Reguły stylu języka C#:
- Używanie wyrażenia throw (IDE0016)
- Deklaracja zmiennej wbudowanej (IDE0018)
- Uproszczenie wyrażenia "default" (IDE0034)
- Użyj funkcji lokalnej zamiast lambda (IDE0039)
- Dekonstrukcja zmiennej deklaracji (IDE0042)
- Używanie operatora indeksu (IDE0056)
- Użyj operatora zakresu (IDE0057)
- Dodaj brakujące przypadki do wyrażenia switch (IDE0072)
- Usuń niepotrzebny operator tłumienia (IDE0080)
-
Uproszczenie
new
wyrażenia (IDE0090) - Usuń niepotrzebne odrzucenie (IDE0110)
- Preferuj sprawdzanie "null" zamiast sprawdzania typu (IDE0150)
- Użyj krotki, aby zamienić wartości (IDE0180)
- Dodaj jawny rzut w pętli foreach (IDE0220)
- Użyj literału ciągu UTF-8 (IDE0230)
- Dyrektywa nullable jest zbędna (IDE0240)
- Dyrektywa nullable jest niepotrzebna (IDE0241)
- Użyj wyrażenia kolekcji dla tablicy (IDE0300)
- Użyj wyrażenia kolekcji dla pustego (IDE0301)
- Użyj wyrażenia kolekcji do alokacji stosu (IDE0302)
-
Użyj wyrażenia kolekcji dla
Create()
(IDE0303) - Używanie wyrażenia kolekcji dla konstruktora (IDE0304
- Użyj wyrażenia kolekcji dla płynniejszego przepływu (IDE0305)
- Użyj wyrażenia kolekcji z new (IDE0306)
Reguły stylu języka Visual Basic:
-
Usuń
ByVal
(IDE0081) -
Użyj dopasowywania wzorca (
IsNot
operator) (IDE0084) - Uproszczenie tworzenia obiektów (IDE0140)
Preferencje pól
Reguły stylu platformy .NET (C# i Visual Basic):
Preferencje dotyczące słów kluczowych języka a typów struktur
Reguły stylu platformy .NET (C# i Visual Basic):
Preferencje dotyczące modyfikatorów
Reguły stylu platformy .NET (C# i Visual Basic):
Reguły stylu języka C#:
- Utwórz statyczną funkcję lokalną (IDE0062)
- Tworzenie pól struktury zapisywalnych (IDE0064)
- Można dokonać struktury "readonly" (IDE0250)
- Element może być „tylko do odczytu” (IDE0251)
- Utwórz statyczną funkcję anonimową (IDE0320)
Preferencje nowego wiersza
- Zezwalaj na wiele pustych wierszy (IDE2000)
- Zezwalaj na instrukcje osadzone w tym samym wierszu (IDE2001)
- Zezwalaj na puste wiersze między kolejnymi klamrami (IDE2002)
- Zezwalaj na instrukcję natychmiast po bloku (IDE2003)
- Zezwalaj na pustą linię po dwukropku w inicjatorze konstruktora (IDE2004)
- Zezwalaj na pusty wiersz po tokenie w wyrażeniu warunkowym (IDE2005)
- Zezwalaj na pusty wiersz po znaku w wyrażeniu strzałkowym (IDE2006)
Preferencje dotyczące sprawdzania wartości null
Reguły stylu języka C#:
Preferencje dotyczące parametrów
Reguły stylu platformy .NET (C# i Visual Basic):
Preferencje dotyczące nawiasów
Reguły stylu platformy .NET (C# i Visual Basic):
Preferencje dotyczące dopasowywania wzorców
Reguły stylu języka C#:
- Użyj dopasowania wzorca, aby uniknąć sprawdzania wartości "as", a następnie sprawdzania wartości null (IDE0019)
- Użyj sprawdzania zgodności wzorca, aby uniknąć sprawdzania "is", po którym następuje rzutowanie (IDE0020, IDE0038)
- Użyj wyrażenia switch (IDE0066)
- Używanie dopasowania wzorca (IDE0078 i IDE0260)
-
Używanie dopasowywania wzorca (
not
operator) (IDE0083) - Upraszczanie wzorca właściwości (IDE0170)
Preferencje tłumienia
Reguły stylu platformy .NET (C# i Visual Basic):
This.
i me.
preferencje
Reguły stylu platformy .NET (C# i Visual Basic):
var
preferencje
Reguły stylu języka C#: