Visual Studio에서 명명 규칙 위반 메시지를 제거하는 방법은 무엇입니까?


96

방금 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에서 이러한 유형의 경고를 제거하려면 어떻게해야합니까?


7
이 피드백을 VS에 확실히 제출하십시오. 2017 년은 새로운 기능이 포함 된 새 버전이며 때로는 너무 공격적으로 시작할 수 있습니다. 귀하의 의견은 기본 동작을 조정하는 데 도움이됩니다.
Jimmy

3
버그처럼 들립니다. 이것은 오래된 프로젝트뿐만 아니라 VS2017rc에서 만든 새로운 프로젝트에 관한 것입니다. VS는 컨트롤 이름을 만든 다음 공격적인 플래그를 지정합니다.
TaW

3
MSVS에서 생성 한 단추 클릭 처리기 "btnList_Click ()"에서이 1006 오류가 발생했습니다. 즉, MSVS2017은 자체적으로 생성방법 에 대해 불평하고 있습니다 ! 닷넷 1.0 이후에 있었던 명명 규칙 에 대해 갑자기 불평하고 있습니다 ! 한숨 .. 이상적인 솔루션 : #pragma warning disable IDE1006. 이것은 소스 코드에 있기 때문에 자동으로 프로젝트 전체에 적용된다는 이점이 있습니다 (워크 스테이션 별 MSVS 설정을 동기화 할 필요가 없음).
paulsm4

답변:


142

새로운 구성 가능한 기능입니다.

옵션 → 텍스트 편집기 → 사용자 언어 (C #을 사용함) → 코드 스타일 → 이름 지정

여기에서 스타일 관리로 이동하여 카멜 케이스를 추가합니다 (그 안에 있지만 선택 항목에 추가해야 함). "+"기호로 이동 한 다음 그에 따라 규칙을 추가합니다.

중요 : 변경 사항을 적용하려면 솔루션을 닫고 다시 엽니 다.

예를 들어, 나는 사적인 방법에만 camel Case를 사용합니다. 그래서 저는 Private Method를 선택하고 제가 만든 새로운 "camel Case"를 Style로 설정하고 Severity Suggestion으로 설정했습니다.

내장 된 기능도 모두 "제안"이므로 메시지를 끌 수도 있습니다.


2
그것은 우리가 private 메서드에 사용하는 것과 똑같은 명명 규칙입니다. 감사합니다! 이제 사람들이 개별적으로이 옵션을 설정하지 않고도 모든 사람을 위해이 기능을 활성화하는 방법을 찾아야합니다 ....
Matthew Watson

9
이러한 옵션으로 이동하는 빠른 방법은 "빠른 동작"전구를 클릭하고 "이름 위반 수정"위로 마우스를 이동 한 다음 "스타일 옵션 변경"버튼을 클릭하는 것입니다.
Daren

5
방금 규칙을 삭제했습니다
Paulustrious

2
이러한 설정 / 규칙 / 스타일을 전체 팀과 공유하려면 다음을 참조하십시오. stackoverflow.com/questions/11684457/…
kmote

5
전체 명명 기능이 버그가있는 것으로 보이며 Visual Studio 2019 릴리스에서 작동하지 않습니다.
gpresland

29

일부 파일 또는 영역에서만 억제하려면 다음을 사용할 수 있습니다.

#pragma warning disable IDE1006

// the code with the warning

#pragma warning restore IDE1006

2
이것은 아마도 "이상적인"해결책 일 것입니다! 전체 팀의 문제를 해결합니다.
paulsm4

24

이러한 메시지를 제거해야하는 경우 메시지를 억제 할 수도 있습니다.

여기에 이미지 설명 입력


1
'In Source'와 'In Suppression File'의 차이점은 무엇입니까?
TylerH

3
@TylerH "In Source"는 경고가 발생하는 파일입니다. "In Suppression File"은 모든 경고를 저장하기 위해 생성 된 파일입니다.
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

5

메서드에서 경고 메시지를 생략하거나 무효화하려면 System.Diagnostics.CodeAnalysis 네임 스페이스 에서 SuppressMessage 를 사용할 수 있습니다 .

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

정당성의 속성은 선택 사항이지만, 그것의 가치는 코드를 수정하고 확인 상태인지 팀의 노하우를 수 있도록, 이유를 쓰는 순간을 지출.


2

명명 규칙 위반 위로 마우스를 가져 가면 Alt + Enter를 사용하여 해당 언어의 명명 스타일을 표시 할 수 있습니다. 도구-> 옵션-> 텍스트 편집기-> {언어}-> 코드 스타일-> 이름 지정을 사용할 수도 있습니다.

Methods의 camelCase 규칙의 경우 새 규칙을 추가하고이를 Camel Case로 설정할 수 있습니다. 코드 파일을 닫았다가 다시 열면 더 이상 경고가 표시되지 않습니다. 이것이 기본 옵션이 아닌 이유는 모르지만 제 경우에는 그렇지 않았습니다 (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

0

규칙을 비활성화하십시오. 오류 메시지를 마우스 오른쪽 버튼으로 클릭하고 심각도를 없음으로 선택하십시오.


0

이 규칙이 주장하는 것은 필드 가 비공개 여야한다는 것입니다.

필드 뒤에 {get; set;}을 추가하여 속성 으로 변환 할 수 있습니다 .

이것은 나를 위해 오류를 제거했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.