Właśnie zainstalowałem program Visual Studio 2017. Kiedy otwieram istniejącą witrynę internetową, otrzymuję różnego rodzaju komunikaty ostrzegawcze, takie jak ten:
IDE1006 Naruszenie zasady nazewnictwa: te słowa muszą zaczynać się od wielkich liter: swe_calc
W kodzie definiuje się go jako:
[System.Runtime.InteropServices.DllImport("swedll32.dll")]
public static extern Int32 swe_calc(double tjd, int ipl, Int32 iflag, IntPtr xx, IntPtr serr);
Dzieje się tak również w przypadku moich kontrolek ASP.Net. Jako przykład DropDownList:
IDE1006 Naruszenie reguły nazewnictwa: te słowa muszą zaczynać się od wielkich liter: ddlMonth_SelectedIndexChanged
Jak mogę wyeliminować tego typu ostrzeżenia w programie Visual Studio?
c#
asp.net
visual-studio-2017
SteveFerg
źródło
źródło
#pragma warning disable IDE1006
. Ma to tę zaletę, że ponieważ znajduje się w kodzie źródłowym, jest automatycznie uwzględniany w całym projekcie (nie musisz synchronizować żadnych ustawień MSVS na stację roboczą).Odpowiedzi:
Jest to nowa konfigurowalna funkcja, jeśli przejdziesz do
Tam poszedłem do Zarządzaj stylami dodaj Camel Case (jest tam, ale musisz dodać go do swojego wyboru): przejdź do znaku „+”, a następnie dodaj odpowiednio swoją regułę.
Ważne : zamknij rozwiązanie i otwórz je ponownie, aby zmiany zaczęły obowiązywać.
Na przykład używam Camel Case tylko do prywatnych metod. Więc wybrałem metodę prywatną i wymagałem stylu nowego, który utworzyłem „skrzynia wielbłąda” i ustawiłem ją na sugestię wagi (również promowałem ją na górze).
Wbudowane są również „Sugestie”, więc możesz po prostu wyłączyć Wiadomości.
źródło
Jeśli chcesz go stłumić tylko w niektórych plikach lub obszarach, możesz użyć:
#pragma warning disable IDE1006 // the code with the warning #pragma warning restore IDE1006
źródło
Jeśli chcesz pozbyć się tych wiadomości, możesz je po prostu ukryć.
źródło
Możesz zmienić nazwę metody i dodać nazwę do atrybutu z
EntryPoint
właściwością.[System.Runtime.InteropServices.DllImport("swedll32.dll", EntryPoint = "swe_calc")] public static extern Int32 SweCalc(double tjd, int ipl, Int32 iflag, IntPtr xx, IntPtr serr);
źródło
Jeśli chcesz pominąć lub unieważnić komunikat ostrzegawczy w metodzie, możesz użyć SuppressMessage z przestrzeni nazw System.Diagnostics.CodeAnalysis :
[SuppressMessage("Microsoft.Design", "IDE1006", Justification = "Rule violation aceppted due blah blah..")]
Właściwość Uzasadnienie jest opcjonalna, ale warto poświęcić chwilę na napisanie powodu, aby poinformować zespół, że kod jest poprawiony i jest w porządku.
źródło
Jeśli najedziesz kursorem na naruszenie reguł nazewnictwa, możesz użyć Alt + Enter, aby wyświetlić style nazewnictwa dla tego języka. Możesz także użyć Narzędzia -> Opcje -> Edytor tekstu -> {język} -> Styl kodu -> Nazewnictwo.
W przypadku reguł camelCase w Metodach możesz dodać nową regułę i ustawić ją na Camel Case. Kiedy zamkniesz plik kodu i otworzysz go ponownie, nie powinieneś już widzieć tego ostrzeżenia. Nie jestem pewien, dlaczego nie jest to opcja domyślna, ale nie było w moim przypadku (przy użyciu Visual Code 15.8). Musiałem edytować style, aby pasowały do standardów naszej firmy.
Przykładowe ustawienia stylów nazewnictwa języka C #
źródło
Można to zrobić za pomocą zwykłych VS2017 i VS2019, używając
.editorconfig
pliku ustawień, używając reguł nazewnictwa: https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-referencePlik można utworzyć ręcznie lub w VS2019 możesz pobrać program Visual Studio, aby utworzyć go według własnych preferencji (tj. Po skonfigurowaniu ustawień wstępnych jak na https://stackoverflow.com/a/41131563/131701 ), naciskając wygeneruj plik konfiguracyjny edytora z przycisku ustawień.
Na przykład następujące zestawy reguł włączą funkcję camelCase dla wszystkich metod niepublicznych i zachowają inne domyślne reguły nazewnictwa, które są dostarczane z VS.
#### Naming styles #### # Naming rules dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion dotnet_naming_rule.types_should_be_pascal_case.symbols = types dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case dotnet_naming_rule.private_method_should_be_camelcasestyle.severity = suggestion dotnet_naming_rule.private_method_should_be_camelcasestyle.symbols = private_method dotnet_naming_rule.private_method_should_be_camelcasestyle.style = camelcasestyle dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case # Symbol specifications dotnet_naming_symbols.interface.applicable_kinds = interface dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal dotnet_naming_symbols.interface.required_modifiers = dotnet_naming_symbols.private_method.applicable_kinds = method dotnet_naming_symbols.private_method.applicable_accessibilities = private, protected, internal, protected_internal dotnet_naming_symbols.private_method.required_modifiers = dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal dotnet_naming_symbols.types.required_modifiers = dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal dotnet_naming_symbols.non_field_members.required_modifiers = # Naming styles dotnet_naming_style.pascal_case.required_prefix = dotnet_naming_style.pascal_case.required_suffix = dotnet_naming_style.pascal_case.word_separator = dotnet_naming_style.pascal_case.capitalization = pascal_case dotnet_naming_style.begins_with_i.required_prefix = I dotnet_naming_style.begins_with_i.required_suffix = dotnet_naming_style.begins_with_i.word_separator = dotnet_naming_style.begins_with_i.capitalization = pascal_case dotnet_naming_style.camelcasestyle.required_prefix = dotnet_naming_style.camelcasestyle.required_suffix = dotnet_naming_style.camelcasestyle.word_separator = dotnet_naming_style.camelcasestyle.capitalization = camel_case
źródło
wyłącz regułę. kliknij prawym przyciskiem myszy komunikat o błędzie i wybierz poziom ważności na brak
źródło
Ta reguła zapewnia, że pola muszą być prywatne.
Możesz przekształcić go w Właściwość , dodając {get; set;} po polu.
To usunęło błąd za mnie.
źródło