Я только что установил Visual Studio 2017. Когда я открываю существующий веб-сайт, я получаю всевозможные предупреждающие сообщения, такие как это:
IDE1006 Нарушение правила именования: эти слова должны начинаться с символов верхнего регистра: swe_calc
В коде это определяется как:
[System.Runtime.InteropServices.DllImport("swedll32.dll")]
public static extern Int32 swe_calc(double tjd, int ipl, Int32 iflag, IntPtr xx, IntPtr serr);
Это также происходит с моими элементами управления ASP.Net. В качестве примера DropDownList:
IDE1006 Нарушение правила именования: эти слова должны начинаться с символов верхнего регистра: ddlMonth_SelectedIndexChanged
Как я могу устранить подобные предупреждения в Visual Studio?
c#
asp.net
visual-studio-2017
СтивФерг
источник
источник
#pragma warning disable IDE1006
. Преимущество этого состоит в том, что, поскольку он находится в исходном коде, он автоматически распространяется на весь проект (вам не нужно синхронизировать какие-либо настройки MSVS для каждой рабочей станции).Ответы:
Это новая настраиваемая функция, если вы перейдете в
Там я перешел в Управление стилями и добавил случай верблюда (он там, но вам нужно добавить его в список для выбора): перейдите к знаку «+», затем добавьте свое правило соответственно.
Важно : закройте решение и снова откройте его, чтобы изменения вступили в силу.
Например, я использую только Camel Case для частных методов. Поэтому я выбрал частный метод и потребовал стилизовать новый, который я создал "Случай верблюда" и установил для него значение Предложения по серьезности (я также поднял его на вершину).
Также есть встроенные «предложения», так что вы также можете просто отключить сообщения.
источник
Если вы хотите подавить его только в некоторых файлах или областях, вы можете использовать следующее:
#pragma warning disable IDE1006 // the code with the warning #pragma warning restore IDE1006
источник
Если вам нужно избавиться от этих сообщений, вы можете просто подавить их.
источник
Вы можете переименовать метод и добавить имя к атрибуту со
EntryPoint
свойством.[System.Runtime.InteropServices.DllImport("swedll32.dll", EntryPoint = "swe_calc")] public static extern Int32 SweCalc(double tjd, int ipl, Int32 iflag, IntPtr xx, IntPtr serr);
источник
Если вы хотите опустить или аннулировать предупреждающее сообщение в методе, вы можете использовать SuppressMessage из пространства имен System.Diagnostics.CodeAnalysis :
[SuppressMessage("Microsoft.Design", "IDE1006", Justification = "Rule violation aceppted due blah blah..")]
Свойство Justification необязательно, но стоит потратить немного времени на написание причины, чтобы ваша команда знала, что код исправлен и в порядке.
источник
Если вы наведете курсор на нарушение правила именования, вы можете использовать Alt + Enter, чтобы вызвать стили именования для этого языка. Вы также можете использовать Инструменты -> Параметры -> Текстовый редактор -> {язык} -> Стиль кода -> Именование.
Для правил camelCase в методах вы можете добавить новое правило и установить его для Camel Case. Когда вы закроете файл кода и снова откроете его, вы больше не увидите этого предупреждения. Не уверен, почему это не вариант по умолчанию, но этого не было в моем случае (с использованием Visual Code 15.8). Мне пришлось отредактировать стили, чтобы они соответствовали стандартам нашей компании.
Пример настроек стилей именования C #
источник
Это можно сделать с помощью обычных VS2017 и VS2019, используя
.editorconfig
файл настроек, используя правила именования: https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-referenceФайл можно создать вручную, или в VS2019 вы можете заставить Visual Studio создать его для вас в соответствии с вашими предпочтениями (то есть после настройки ваших предпочтений, как в https://stackoverflow.com/a/41131563/131701 ), нажав создать файл конфигурации редактора с помощью кнопки настроек.
Например, следующие наборы правил включат camelCase для всех закрытых методов и сохранят другие правила именования по умолчанию, которые поставляются с 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
источник
отключить правило. сообщение об ошибке, щелкнув правой кнопкой мыши, и выберите для уровня серьезности значение "Нет"
источник
Это правило утверждает, что поля должны быть закрытыми.
Вы можете преобразовать его в свойство , добавив {get; set;} после поля.
Это устранило ошибку для меня.
источник