Visual Studio 2017をインストールしました。既存のWebサイトを開くと、次のようなあらゆる種類の警告メッセージが表示されます。
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#をしました)→コードスタイル→命名
そこで、「スタイルの管理」に移動し、ラクダケースを追加しました(その中にありますが、選択可能に追加する必要があります)。「+」記号に移動し、それに応じてルールを追加します。
重要:ソリューションを閉じて、変更を有効にするために再度開きます。
例えば、私はプライベートメソッドにキャメルケースのみを使用しています。そこで、プライベートメソッドを選択し、「キャメルケース」で作成した新しいスタイルを必要なスタイルに設定し、重大度の提案に設定しました(トップに昇格しました)。
組み込みもすべて「提案」なので、メッセージをオフにすることもできます。
メソッドの名前を変更し、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);
一部のファイルまたは領域でのみ抑制したい場合は、次を使用できます。
#pragma warning disable IDE1006
// the code with the warning
#pragma warning restore IDE1006
命名規則違反にカーソルを合わせると、Alt + Enterを使用してその言語の命名スタイルを表示できます。 [ツール]-> [オプション]-> [テキストエディタ]-> {言語}-> [コードスタイル]-> [命名]を使用することもできます。
メソッドに関するcamelCaseルールの場合、新しいルールを追加して、キャメルケースに設定できます。コードファイルを閉じて再度開くと、その警告は表示されなくなります。これがデフォルトのオプションではない理由はわかりませんが、私の場合はそうではありませんでした(Visual Code 15.8を使用)。会社の標準に合わせてスタイルを編集する必要がありました。
メソッドの警告メッセージを省略または無効にする場合は、名前空間のSuppressMessageを使用できますSystem.Diagnostics.CodeAnalysis:
[SuppressMessage("Microsoft.Design", "IDE1006", Justification = "Rule violation aceppted due blah blah..")]
Justificationプロパティはオプションですが、コードが修正されて問題ないことをチームに知らせるために、少し時間をかけて理由を説明する価値があります。
これは、命名規則を使用して、.editorconfig
設定ファイルを使用して、通常のVS2017およびVS2019を使用して実行できます。 https://docs.Microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-参照
ファイルは手動で作成できますが、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