web-dev-qa-db-ja.com

Visual Studioで命名規則違反メッセージを取り除く方法は?

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でこれらの種類の警告を削除するにはどうすればよいですか?

62
SteveFerg

その新しい設定可能な機能、に行く場合

オプション→テキストエディター→あなたの言語(私はC#をしました)→コードスタイル→命名

そこで、「スタイルの管理」に移動し、ラクダケースを追加しました(その中にありますが、選択可能に追加する必要があります)。「+」記号に移動し、それに応じてルールを追加します。

重要:ソリューションを閉じて、変更を有効にするために再度開きます。

例えば、私はプライベートメソッドにキャメルケースのみを使用しています。そこで、プライベートメソッドを選択し、「キャメルケース」で作成した新しいスタイルを必要なスタイルに設定し、重大度の提案に設定しました(トップに昇格しました)。

組み込みもすべて「提案」なので、メッセージをオフにすることもできます。

105
Jason Gabel

これらのメッセージを取り除く必要がある場合は、単に抑制することもできます。

enter image description here

19
A.J.Bauer

メソッドの名前を変更し、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);
10
Daniel A. White

一部のファイルまたは領域でのみ抑制したい場合は、次を使用できます。

#pragma warning disable IDE1006

// the code with the warning

#pragma warning restore IDE1006
10
Robert S.

命名規則違反にカーソルを合わせると、Alt + Enterを使用してその言語の命名スタイルを表示できます。 [ツール]-> [オプション]-> [テキストエディタ]-> {言語}-> [コードスタイル]-> [命名]を使用することもできます。

メソッドに関するcamelCaseルールの場合、新しいルールを追加して、キャメルケースに設定できます。コードファイルを閉じて再度開くと、その警告は表示されなくなります。これがデフォルトのオプションではない理由はわかりませんが、私の場合はそうではありませんでした(Visual Code 15.8を使用)。会社の標準に合わせてスタイルを編集する必要がありました。

サンプルC#命名スタイル設定

1
Greg McFalls

メソッドの警告メッセージを省略または無効にする場合は、名前空間のSuppressMessageを使用できますSystem.Diagnostics.CodeAnalysis

[SuppressMessage("Microsoft.Design", "IDE1006", Justification = "Rule violation aceppted due blah blah..")]

Justificationプロパティはオプションですが、コードが修正されて問題ないことをチームに知らせるために、少し時間をかけて理由を説明する価値があります。

0

これは、命名規則を使用して、.editorconfig設定ファイルを使用して、通常のVS2017およびVS2019を使用して実行できます。 https://docs.Microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-参照

ファイルは手動で作成できますが、VS2019ではVisual Studioを使用して設定から作成できます(つまり、 https://stackoverflow.com/a/41131563/131701のように設定を構成した後) )、[設定]ボタンから[エディターの構成ファイルを生成]をクリックします。

generate editor config file from settings button

たとえば、次のルールセットは、すべての非パブリックメソッドに対して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
0
Dave Glassborow