Reguły stylu kodu

analiza stylu kodu .NET zapewnia reguły, które mają na celu zachowanie spójnych style w bazie kodu. Te reguły mają prefiks "IDE" w identyfikatorze reguły.

Reguły stylu kodu są zorganizowane w następujące podkategorie:

  • Język i niepotrzebne reguły kodu

    Reguły dotyczące języka C# lub Visual Basic. Można na przykład określić reguły, które dotyczą użycia var podczas definiowania zmiennych, lub czy preferowani są członkowie z ciałem wyrażenia. Ta kategoria obejmuje również reguły, które znajdą niepotrzebny kod, na przykład niemożliwy do osiągnięcia kod w ramach metod lub nieużywane pola prywatne, właściwości lub metody.

  • Reguły formatowania

    Reguły dotyczące układu i struktury kodu w celu ułatwienia ich odczytania. Można na przykład określić opcję formatowania, która określa, czy spacje w blokach sterowania są preferowane, czy nie.

  • Reguły nazewnictwa

    Reguły dotyczące nazewnictwa elementów kodu. Można na przykład określić, że async nazwy metod muszą mieć sufiks "Async".

  • Różne reguły

    Reguły, które nie należą do innych kategorii.

Indeks

W poniższej tabeli wymieniono wszystkie reguły stylu kodu według identyfikatora i opcji, jeśli istnieją.

Identyfikator zasady Tytuł Opcja
IDE0001 Uprość nazwę
IDE0002 Uproszczenie dostępu do członków
IDE0003 Nazwę można uprościć dotnet_style_qualification_for_field
dotnet_style_qualification_for_property
dotnet_style_qualification_for_method
dotnet_style_qualification_for_event
IDE0004 Usuń niepotrzebne rzutowanie
IDE0005 Usuwanie niepotrzebnego importowania
IDE0007 Użyj var zamiast jawnego typu styl_csharp_var_dla_wbudowanych_typów
styl_csharp_var_gdy_typ_jest_ewidentny
csharp_style_var_elsewhere
IDE0008 Użyj jawnego typu zamiast var styl_csharp_var_dla_wbudowanych_typów
styl_csharp_var_gdy_typ_jest_ewidentny
csharp_style_var_elsewhere
IDE0009 Dostęp do członków powinien być kwalifikowany dotnet_style_qualification_for_field
dotnet_style_qualification_for_property
dotnet_style_qualification_for_method
dotnet_style_qualification_for_event
IDE0010 Dodaj brakujące przypadki do instrukcji switch
IDE0011 Dodawanie nawiasów klamrowych preferowane_nawiasy
IDE0016 Używanie wyrażenia throw csharp_style_throw_expression (styl wyrażenia throw w C#)
IDE0017 Używanie inicjatorów obiektów dotnet_style_inicjalizator_obiektów
IDE0018 Deklaracja zmiennej wbudowanej csharp_style_inlined_variable_declaration (csharp_styl_deklaracji_zmiennej_w_linii)
IDE0019 Użyj dopasowania wzorca, aby uniknąć as występującego przed null sprawdzeniem csharp_style_pattern_matching_over_as_with_null_check (styl wzorca csharp nad "as" z kontrolą wartości null)
IDE0020 Użyj dopasowania wzorca, aby uniknąć is sprawdzania, po którym następuje rzutowanie (ze zmienną) csharp_style_pattern_matching_over_is_with_cast_check
IDE0021 Użyj treści wyrażenia dla konstruktorów csharp_style_expression_bodied_constructors
IDE0022 Użyj treści wyrażenia dla metod styl_Csharp_metody_wyrażeń
IDE0023 Stosuj ciało wyrażenia dla operatorów konwersji styl_wyrażeniowy_operatorów_w_csharp
IDE0024 Użyj ciała wyrażeniowego dla operatorów styl_wyrażeniowy_operatorów_w_csharp
IDE0025 Użyj treści wyrażenia dla właściwości csharp_style_expression_bodied_properties
IDE0026 Używanie treści wyrażenia dla indeksatorów csharp_style_expression_bodied_indexers (styl C# dla indeksatorów opartych na wyrażeniach)
IDE0027 Używanie treści wyrażenia dla metod dostępu csharp_style_expression_bodied_accessors
IDE0028 Używanie inicjatorów kolekcji dotnet_style_collection_initializer
dotnet_style_prefer_collection_expression
IDE0029 Sprawdzanie wartości null można uprościć dotnet_style_coalesce_expression
IDE0030 Sprawdzanie wartości null można uprościć dotnet_style_coalesce_expression
IDE0031 Użyj propagacji null dotnet_style_null_propagation
IDE0032 Użyj właściwości auto dotnet_style_prefer_auto_properties
IDE0033 Użyj jawnie podanej nazwy krotki dotnet_style_explicit_tuple_names
IDE0034 Upraszczanie default wyrażenia csharp_prefer_simple_default_expression (preferuj prostą domyślną formę w C#)
IDE0035 Usuwanie nieosiągalnego kodu
IDE0036 Modyfikatory kolejności preferowana_kolejnosc_modyfikatorow_csharp
visual_basic_preferred_modifier_order
IDE0037 Użyj wywnioskowanej nazwy elementu dotnet_style_prefer_inferred_tuple_names
dotnet_style_prefer_inferred_anonymous_type_member_names
IDE0038 Użyj dopasowania wzorca, aby uniknąć is sprawdzania, po którym następuje rzutowanie (bez zmiennej) csharp_style_pattern_matching_over_is_with_cast_check
IDE0039 Użyj funkcji lokalnej zamiast lambda csharp_style_prefer_local_over_anonymous_function
IDE0040 Dodawanie modyfikatorów ułatwień dostępu styl_dotnet_wymagaj_modyfikatorów_dostępności
IDE0041 Użyj sprawdzania, czy wartość jest null dotnet_style_prefer_is_null_check_over_reference_equality_method
IDE0042 Dekonstrukcja zmiennej deklaracji styl_deklaracji_zmiennych_zdekonstrukowany_csharp
IDE0044 Dodaj modyfikator tylko do odczytu styl .NET dla pola tylko do odczytu
IDE0045 Używanie wyrażenia warunkowego do przypisania dotnet_style_prefer_conditional_expression_over_assignment
IDE0046 Używanie wyrażenia warunkowego do zwracania dotnet_style_prefer_conditional_expression_over_return
IDE0047 Usuwanie niepotrzebnych nawiasów dotnet_style_parentheses_in_arithmetic_binary_operators
styl_dotnet_nawiasy_w_relacyjnych_operatorach_binarnych
dotnet_styl_nawiasów_w_innych_operatorach_binarnych
dotnet_style_nawiasy_w_innych_operacjach
IDE0048 Dodawanie nawiasów w celu uzyskania jasności dotnet_style_parentheses_in_arithmetic_binary_operators
styl_dotnet_nawiasy_w_relacyjnych_operatorach_binarnych
dotnet_styl_nawiasów_w_innych_operatorach_binarnych
dotnet_style_nawiasy_w_innych_operacjach
IDE0049 Używaj słów kluczowych języka zamiast nazw typów frameworku do odniesień do typów dotnet_styl_typu_przeddefiniowanego_dla_lokalnych_parametrów_członków
dotnet_style_predefined_type_for_member_access
IDE0050 Konwertowanie typu anonimowego na krotkę
IDE0051 Usuń nieużywany element członkowski prywatny
IDE0052 Usuń nieprzeczytane prywatne członkostwo
IDE0053 Używanie treści wyrażenia dla lambd csharp_style_expression_bodied_lambdas
IDE0054 Używanie przypisania złożonego dotnet_style_prefer_compound_assignment
IDE0055 Naprawianie formatowania (Zbyt wiele, aby wyświetlić listę tutaj. Zobacz opcje formatowania .NET i C#).
IDE0056 Użyj operatora indeksu preferencja_stylu_csharp_operator_indeksu
IDE0057 Użyj operatora zakresu Preferowanie operatora zakresu w stylu C#
IDE0058 Usuń nieużywaną wartość wyrażenia csharp_style_unused_value_expression_statement_preference (preferencja dotycząca stylu C# dla wyrażeń o nieużywanej wartości)
preferencja_instrukcji_Visual_Basic_stylu_nieużywanego_wyrażenia_wartości
IDE0059 Usuwanie niepotrzebnego przypisania wartości preferencje_stylu_przypisywania_nieużywanych_wartości_csharp
preferencja_niewykorzystanego_przypisania_wartości_w_stylu_visual_basic
IDE0060 Usuń nieużywany parametr dotnet_code_quality_unused_parameters
IDE0061 Użyj składni wyrażenia w funkcjach lokalnych csharp_style_wyrażeniowe_funkcje_lokalne
IDE0062 Ustaw funkcję lokalną static preferowanie_statycznych_funkcji_lokalnych_csharp
IDE0063 Użyj prostej instrukcji using preferuje_proste_instrukcje_using_w_csharpie
IDE0064 Tworzenie pól struktury zapisywalnych
IDE0065 using umieszczanie dyrektywy csharp_using_directive_placement
IDE0066 Użyj wyrażenia switch Preferencja stylu C#: używanie wyrażeń switch
IDE0070 Użyj System.HashCode.Combine dotnet_prefer_system_hash_code
IDE0071 Upraszczanie interpolacji dotnet_style_prefer_simplified_interpolation
IDE0072 Dodaj brakujące przypadki do wyrażenia switch
IDE0073 Użyj nagłówka pliku szablon_nagłówka_pliku
IDE0074 Używanie przypisania złożonego z użyciem operatora złączenia dotnet_style_prefer_compound_assignment
IDE0075 Upraszczanie wyrażenia warunkowego dotnet_style_prefer_simplified_boolean_expressions
IDE0076 Usuń nieprawidłowy element globalny SuppressMessageAttribute
IDE0077 Unikaj starszego formatu docelowego w skali globalnej SuppressMessageAttribute
IDE0078 Korzystanie z dopasowania do wzorca csharp_style_prefer_pattern_matching (preferencja stylu C# dla dopasowywania wzorców)
IDE0079 Usuwanie niepotrzebnej supresji dotnet_usuń_niepotrzebne_wyjątki_skróceń
IDE0080 Usuwanie niepotrzebnego operatora tłumienia
IDE0081 Usuń ByVal
IDE0082 Konwertowanie typeof na nameof
IDE0083 Użyj dopasowywania wzorca (operator not) preferowane_csharp_style_wzor_nie
IDE0084 Użyj dopasowywania wzorca (operator IsNot) preferowanie_wyrażenia_isnot_stylu_visual_basic
IDE0090 Upraszczanie new wyrażenia csharp_style_tworzenie_obiektu_implicitnego_gdy_typ_jest_jasny
IDE0100 Usuwanie niepotrzebnego operatora równości
IDE0110 Usuwanie zbędnych odrzuceń
IDE0120 Upraszczanie wyrażenia LINQ
IDE0121 Uproszczenie sprawdzania i rzutowanie typu LINQ
IDE0130 Przestrzeń nazw nie jest zgodna ze strukturą folderów dotnet_style_namespace_match_folder
IDE0140 Upraszczanie tworzenia obiektów styl_visual_basic_preferowany_upraszczony_tworzenie_obiektów
IDE0150 Preferuj null sprawdzanie nad sprawdzaniem typu csharp_style_prefer_null_check_over_type_check
IDE0160 Korzystaj z przestrzeni nazw o zakresie bloku `csharp_style_namespace_declarations` - styl deklaracji przestrzeni nazw C#
IDE0161 Użyj przestrzeni nazw o zakresie plików `csharp_style_namespace_declarations` - styl deklaracji przestrzeni nazw C#
IDE0170 Upraszczanie wzorca właściwości csharp_style_prefer_extended_property_pattern (preferuje rozszerzony wzorzec właściwości)
IDE0180 Zamiana wartości za pomocą krotki csharp_style_prefer_tuple_swap (preferowany styl zamiany krotek w C#)
IDE0200 Usuwanie niepotrzebnego wyrażenia lambda csharp_style_prefer_method_group_conversion
IDE0210 Konwertowanie na deklaracje najwyższego poziomu csharp_style_prefer_top_level_statements (preferowanie najwyższego poziomu instrukcji w C#)
IDE0211 Konwertuj na program stylu "Program.Main" csharp_style_prefer_top_level_statements (preferowanie najwyższego poziomu instrukcji w C#)
IDE0220 Dodaj jawny rzut w pętli foreach dotnet_style_prefer_foreach_explicit_cast_in_source
IDE0221 Dodaj jawne rzutowanie dotnet_style_prefer_non_hidden_explicit_cast_in_source
IDE0230 Użyj literału ciągu UTF-8 preferowanie_literali_łańcuchowych_utf8_w_stylu_csharp
IDE0240 Dyrektywa Nullable jest nadmiarowa
IDE0241 Dyrektywa anulowalności jest niepotrzebna
IDE0250 Struktura może być oznaczona jako 'readonly' csharp_style_prefer_readonly_struct
IDE0251 Członek może być tylko do odczytu csharp_style_prefer_readonly_struct_member
IDE0260 Korzystanie z dopasowania do wzorca csharp_style_pattern_matching_over_as_with_null_check (styl wzorca csharp nad "as" z kontrolą wartości null)
IDE0270 Sprawdzanie wartości null można uprościć dotnet_style_coalesce_expression
IDE0280 Użyj nameof
IDE0290 Użyj konstruktora podstawowego csharp_style_prefer_primary_constructors
IDE0300 Używanie wyrażenia kolekcji dla tablicy dotnet_style_prefer_collection_expression
IDE0301 Zastosowanie wyrażenia kolekcji dla pustej kolekcji dotnet_style_prefer_collection_expression
IDE0302 Używanie wyrażenia kolekcji dla obiektu stackalloc dotnet_style_prefer_collection_expression
IDE0303 Użyj wyrażenia kolekcji dla Create() dotnet_style_prefer_collection_expression
IDE0304 Użyj wyrażenia kolekcji dla budowniczego dotnet_style_prefer_collection_expression
IDE0305 Użycie wyrażenia kolekcji dla płynności dotnet_style_prefer_collection_expression
IDE0306 Użyj wyrażenia kolekcji dla nowych tworzeń dotnet_style_prefer_collection_expression
IDE0320 Ustaw funkcję anonimową static csharp_prefer_static_anonymous_function
IDE0330 Preferuj opcję "System.Threading.Lock" csharp_prefer_system_threading_lock
IDE0340 Użyj niepowiązanego typu ogólnego If explanation or additional context is required, it should be provided outside of the tag and term: Preferowanie niezwiązanych typów ogólnych w "nameof" w stylu C#.
IDE0350 Używanie niejawnie wpisanych lambda csharp_style_prefer_implicitly_typed_lambda_expression (preferowanie wyrażeń lambda z typami domniemanymi)
IDE0360 Upraszczanie dostępu do właściwości csharp_style_prefer_simple_property_accessors
IDE0370 Usuwanie niepotrzebnej supresji
IDE0380 Usuwanie niepotrzebnego modyfikatora "niebezpiecznego"
IDE1005 Używanie wywołania delegata warunkowego csharp_style_conditional_delegate_call
IDE1006 Style nazewnictwa
IDE2000 Unikaj wielu pustych wierszy dotnet_style_allow_multiple_blank_lines_experimental
IDE2001 Instrukcje osadzone muszą znajdować się we własnym wierszu csharp_style_allow_embedded_statements_on_same_line_experimental
IDE2002 Kolejne nawiasy klamrowe nie mogą mieć pustego wiersza między nimi csharp_style_allow_blank_lines_between_consecutive_braces_experimental
IDE2003 Pusty wiersz wymagany między blokiem a kolejnym zdaniem dotnet_style_allow_statement_immediately_after_block_experimental
IDE2004 Pusty wiersz jest niedozwolony po dwukropku inicjatora konstruktora csharp_style_allow_blank_line_after_colon_in_constructor_initializer_experimental (styl C# pozwalający na pustą linię po dwukropku w inicjatorze konstruktora - eksperymentalne)
IDE2005 Niedozwolona jest pusta linia po symbolu wyrażenia warunkowego csharp_style_allow_blank_line_after_token_in_conditional_expression_experimental
IDE2006 Pusty wiersz jest niedozwolony po symbolu klauzuli wyrażenia typu strzałkowego csharp_style_allow_blank_line_after_token_in_arrow_expression_clause_experimental
IDE3000 Implementowanie za pomocą Copilot

†To zasady są eksperymentalne i mogą ulec zmianie lub usunięciu.

Uwaga

Istnieją pewne reguły, które są widoczne tylko w IDE Visual Studio, a dotyczą one ciągów JSON i ciągów wzorcowych wyrażeń regularnych. Aby uzyskać więcej informacji, zobacz JSON001, JSON002 i RE0001.

Legenda

W poniższej tabeli przedstawiono typ informacji podanych dla każdej reguły w dokumentacji referencyjnej.

Produkt opis
Identyfikator reguły Unikatowy identyfikator reguły. Służy do konfigurowania ważności reguły i pomijania ostrzeżeń w pliku kodu.
Tytuł Tytuł reguły.
Kategoria Kategoria reguły.
Podkategorii Podkategoria reguły, taka jak reguły języka, reguły formatowania lub reguły nazewnictwa.
Odpowiednie języki Odpowiednie języki .NET (C# lub Visual Basic) wraz z minimalną wersją języka, jeśli ma to zastosowanie.
Wprowadzona wersja Wersja zestawu .NET SDK lub Visual Studio po pierwszym wprowadzeniu reguły.
Opcje Wszystkie dostępne opcje reguły.

Zobacz też