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


94

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


7
このフィードバックを間違いなくVSに提出してください。2017年は新しい機能を備えた新しいバージョンであり、場合によっては非常に攻撃的になることがあります。フィードバックは、デフォルトの動作を調整するのに役立ちます。
ジミー、

3
バグのように聞こえます。これは古いプロジェクトだけでなく、VS2017rcで作成された新しいプロジェクトも対象です。VSは、コントロール名攻勢として、それは、その後のフラグを作成します。..
TAW

3
MSVSで生成されたボタンクリックハンドラー "btnList_Click()"でこの1006エラーが発生しました。つまり、MSVS2017はそれ自体が作成しメソッドについて不満を言っています.Net 1.0以降に存在している命名規則に突然不満を感じています。ため息..理想的なソリューション:#pragma warning disable IDE1006。これには、ソースコード内にあるため、プロジェクト全体が自動的に行われるという利点があります(ワークステーションごとのMSVS設定を同期する必要はありません)。
paulsm4

回答:


140

に行く場合、その新しい構成可能な機能

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

そこに私はスタイルの管理に行きましたキャメルケースを追加しました(そこにありますが、選択可能に追加する必要があります):「+」記号に移動し、それに応じてルールを追加します。

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

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

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


2
これは、プライベートメソッドに使用する命名規則とまったく同じです。ありがとうございます。今、私はちょうど....人々が個別にこのオプションを設定することなく、すべての人のためにこれを有効にする方法を考え出す必要がある
マシュー・ワトソン

9
これらのオプションにすばやくアクセスするには、[クイックアクション]電球をクリックし、[名前の違反を修正]にカーソルを合わせて[スタイルオプションの変更]ボタンをクリックします。
Daren

5
私はルールを削除しました
Paulustrious

2
このような設定/ルール/スタイルをチーム全体と共有するには、これを参照してください:stackoverflow.com/questions/11684457/…–
kmote

5
Visual Studio 2019リリースでは、名前付け機能全体にバグがあり、機能していないようです。
gpresland

27

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

#pragma warning disable IDE1006

// the code with the warning

#pragma warning restore IDE1006

2
これはおそらく「理想的な」ソリューションです。チーム全体の問題を解決します。
paulsm4

24

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

ここに画像の説明を入力してください


1
それらを「ソース内」と「抑制ファイル内」で抑制することの違いは何ですか?
TylerH

3
@TylerH "In Source"は、警告がスローされているファイルです。「抑制ファイル内」は、すべての警告を保存するために生成されたファイルです。
MistaGoustan

14

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

同じエラーが発生するドロップダウンボックスもあります: 'ddlMonth_SelectedIndexChanged'。すべてのasp.netコントロールの名前も変更する必要がありますか?
SteveFerg、2016年

@SteveFergそれはあなた次第です-その単なる警告です。
ダニエルA.ホワイト

1
私も思いつきました。エラーリストの[メッセージ]ボックスを「クリック解除」する以外に、どこかでそれらをオフにするオプションがあるかどうか疑問に思っていました。
SteveFerg、2016年

5

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

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

正当化のプロパティはオプションですが、それの価値は、コードが改訂し、[OKであることをあなたのチームを知ることができるように、その理由を書いた瞬間を過ごします。


2

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

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

C#の名前付けスタイル設定の例


2

これは.editorconfig、命名規則を使用して、設定ファイルを使用する通常のVS2017およびVS2019を使用して行うことができます: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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.