programing

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

skycolor 2023. 4. 27. 22:06
반응형

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

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에서도 발생합니다.넷 컨트롤.DropDownList의 예로 다음을 들 수 있습니다.

IDE1006 명명 규칙 위반:다음 단어는 대문자로 시작해야 합니다: ddlMonth_Selected변경된 인덱스

Visual Studio에서 이러한 유형의 경고를 제거하려면 어떻게 해야 합니까?

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

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

거기서 저는 관리 스타일에 낙타 케이스 추가(안에 있지만 선택 가능한 항목에 추가해야 함)로 이동했습니다. "+" 기호로 이동한 다음 그에 따라 규칙을 추가합니다.

중요:변경 내용을 적용하려면 솔루션을 닫았다가 다시 엽니다.

예를 들어, 저는 개인적인 방법으로만 카멜 케이스를 사용합니다.그래서 저는 "카멜 케이스"를 새로 만든 "개인적인 방법"과 필수 스타일을 선택하고 심각도 제안으로 설정했습니다(또한 이 방법을 맨 위로 승격했습니다).

기본 제공되는 모든 "제안"도 있으므로 메시지를 끌 수도 있습니다.

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

#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("Microsoft.Design", "IDE1006", Justification = "Rule violation aceppted due blah blah..")]

정당성 속성은 선택 사항이지만 잠시 이유를 적어 팀에 코드가 수정되어 정상임을 알리는 것이 좋습니다.

이 작업은 일반 VS2017 및 VS2019를 사용하여 수행할 수 있습니다..editorconfig설정 파일, 이름 지정 규칙 사용: https://learn.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference

이 파일은 수동으로 만들 수도 있고, VS2019에서는 설정에서 편집기 구성 파일 생성 버튼을 눌러 Visual Studio가 사용자의 기본 설정(예: https://stackoverflow.com/a/41131563/131701 에서 prefs를 구성한 후)에서 해당 파일을 만들 수 있습니다.

설정에서 편집기 구성 파일 생성 버튼

예를 들어, 다음 규칙 집합은 모든 비공용 메서드에 대해 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

이름 지정 규칙 위반 위에 마우스를 놓으면 Alt + Enter를 사용하여 해당 언어의 이름 지정 스타일을 불러올 수 있습니다.또한 도구 -> 옵션 -> 텍스트 편집기 -> {language} -> 코드 스타일 -> 이름 지정을 사용할 수 있습니다.

메서드에 대한 낙타 사례 규칙의 경우 새 규칙을 추가하고 이 규칙을 낙타 사례로 설정할 수 있습니다.코드 파일을 닫았다가 다시 열면 해당 경고가 더 이상 표시되지 않습니다.이 옵션이 기본 옵션이 아닌 이유는 모르겠지만 제 경우에는 없었습니다(Visual Code 15.8 사용).저는 회사 기준에 맞게 스타일을 수정해야 했습니다.

샘플 C# 명명 스타일 설정

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

이 규칙은 필드가 비공개여야 한다고 주장합니다.

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

이것으로 저는 오류를 제거했습니다.

언급URL : https://stackoverflow.com/questions/40856186/how-to-get-rid-of-naming-rule-violation-messages-in-visual-studio

반응형