언어 및 불필요한 규칙
코드 스타일 언어 규칙은 .NET 프로그래밍 언어의 다양한 구문(예: 한정자 및 괄호)이 사용되는 방식에 영향을 줍니다.
이 범주에는 불필요하고 리팩터링하거나 제거할 수 있는 코드 베이스의 일부를 식별하는 규칙도 포함됩니다. 불필요한 코드가 있으면 다음 문제 중 하나 이상을 나타냅니다.
- 가독성: 가독성을 불필요하게 저하시키는 코드입니다.
- 유지 관리 기능: 리팩터링 후 더 이상 사용되지 않고 불필요하게 유지 관리되는 코드입니다.
- 성능: 부작용이 없고 불필요한 성능 오버헤드를 초래하는 불필요한 계산입니다.
- 기능: 필수 코드를 중복하는 코드의 기능 문제입니다. 예를 들어 IDE0060은 메서드가 입력 매개 변수를 실수로 무시하는 경우 사용되지 않는 매개 변수에 플래그를 지정합니다.
언어 규칙은 다음 범주로 분류됩니다.
- .NET 스타일 규칙: C# 및 Visual Basic 모두에 적용되는 규칙입니다. 이러한 규칙에 대한 옵션 이름은 접두사로 시작합니다
dotnet_style_
. - C# 스타일 규칙: C# 코드와 관련된 규칙입니다. 이러한 규칙에 대한 옵션 이름은 접두사로 시작합니다
csharp_style_
. - Visual Basic 스타일 규칙: Visual Basic 코드와 관련된 규칙입니다. 이러한 규칙에 대한 옵션 이름은 접두사로 시작합니다
visual_basic_style_
.
옵션 형식
대부분의 언어 규칙에는 기본 스타일을 사용자 지정하는 하나 이상의 연결된 옵션이 있습니다. 예를 들어 간단한 'using' 문 사용(IDE0063)에는 선언 또는 using
문을 선호하는 using
지 여부를 정의할 수 있는 연결된 옵션이 csharp_prefer_simple_using_statement
있습니다. 규칙은 지정된 수준에서 선택한 옵션(예: 경고 또는 오류)을 적용합니다.
언어 규칙에 대한 옵션은 다음 형식의 구성 파일 에서 지정할 수 있습니다.
option_name = value
(Visual Studio 2019 이상)
또는
option_name = value:severity
값
각 언어 규칙에 관해 이 스타일을 선호하는지 여부 또는 시기를 정의하는 값을 지정합니다. 대부분의 규칙은
true
(이 스타일 선호) 또는false
(이 스타일 선호 안 함) 값을 허용합니다. 다른 규칙은when_on_single_line
,never
등의 값을 허용합니다.심각도 (Visual Studio 2019 이상 버전에서 선택 사항)
규칙의 두 번째 부분은 규칙의 심각도 수준을 지정합니다. .NET 9 이상 버전에서는 심각도가 항상 준수됩니다. 즉, 개발 IDE 내부 및 명령줄 빌드 중입니다. .NET 8 및 이전 버전에서 이 심각도 설정은 빌드 중에가 아니라 Visual Studio와 같은 개발 IDE 내에서만 적용됩니다.
.NET 8 SDK 또는 이전 버전을 사용하고 빌드 시 심각도를 준수하려는 경우 다음 두 가지 방법 중 하나로 수행할 수 있습니다.
- <AnalysisLevel> 또는
<AnalysisLevelStyle>
속성을 19.0
이상 또는preview
으로 설정합니다. - 대신 분석기의 규칙 ID 기반 심각도 구성 구문을 사용하여 심각도를 설정합니다. 구문은
dotnet_diagnostic.<rule ID>.severity = <severity>
형식을 사용합니다(예:dotnet_diagnostic.IDE0040.severity = warning
). 자세한 내용은 심각도 수준을 참조하세요.
- <AnalysisLevel> 또는
팁
Visual Studio 2019부터 스타일 위반이 발생한 후 빠른 작업 전구 메뉴에서 코드 스타일 규칙을 구성할 수 있습니다.
규칙 인덱스
언어 및 불필요한 코드 규칙은 식 수준 기본 설정, 코드 블록 기본 설정 및 한정자 기본 설정과 같은 하위 범주로 더 분류됩니다.
using
지시문 기본 설정- 코드 블록 기본 설정
- 식 본문 멤버
- 식 수준 기본 설정
- 필드 기본 설정
- 언어 키워드 및 프레임워크 형식 기본 설정
- 한정자 기본 설정
- 줄 바꿈 기본 설정
- Null 검사 기본 설정
- 매개 변수 기본 설정
- 괄호 기본 설정
- 패턴 일치 기본 설정
- 표시 안 함 기본 설정
This.
및me.
기본 설정var
선호
using
지시문 기본 설정
.NET 스타일 규칙(C# 및 Visual Basic):
C# 스타일 규칙:
코드 블록 기본 설정
C# 스타일 규칙:
- 중괄호 추가(IDE0011)
- 간단한 ‘using’ 문 사용(IDE0063)
- 네임스페이스 선언 기본 설정(IDE0160, IDE0161)
- 불필요한 람다 식 제거(IDE0200)
- 최상위 문으로 변환(IDE0210)
- 'Program.Main' 스타일 프로그램으로 변환(IDE0211)
- 기본 생성자 사용(IDE0290)
- 'System.Threading.Lock'(IDE0330)을 선호합니다.
식 본문 멤버
C# 스타일 규칙:
- 생성자에 식 본문 사용(IDE0021)
- 메서드에 식 본문 사용(IDE0022)
- 연산자(IDE0023, IDE0024)에 식 본문 사용
- 속성에 식 본문 사용(IDE0025)
- 인덱서에 식 본문 사용(IDE0026)
- 접근자에 식 본문 사용(IDE0027)
- 람다에 식 본문 사용(IDE0053)
- 로컬 함수에 식 본문 사용(IDE0061)
식 수준 기본 설정
.NET 스타일 규칙(C# 및 Visual Basic):
- 이름 단순화(IDE0001)
- 멤버 액세스 단순화(IDE0002)
- 불필요한 캐스트 제거(IDE0004)
- switch 문에 누락된 사례 추가(IDE0010)
- 개체 이니셜라이저 사용(IDE0017)
- 컬렉션 이니셜라이저 사용(IDE0028)
- Null 검사를 간소화할 수 있습니다(IDE0029, IDE0030, IDE0270).
- null 전파 사용(IDE0031)
- 자동 구현 속성 사용(IDE0032)
- 명시적으로 제공된 튜플 이름 사용(IDE0033)
- 접근할 수 없는 코드 제거(IDE0035)
- 유추된 멤버 이름 사용(IDE0037)
- 'is null' 검사 사용(IDE0041)
- 대입에 조건식 사용(IDE0045)
- 반환에 조건식 사용(IDE0046)
- 무명 형식을 튜플로 변환(IDE0050)
- 사용되지 않는 private 멤버 제거(IDE0051)
- 읽지 않은 private 멤버 제거(IDE0052)
- 복합 할당 사용(IDE0054, IDE0074)
- 불필요한 식 값 제거(IDE0058)
- 불필요한 값 대입 제거(IDE0059)
- ‘System.HashCode.Combine’ 사용(IDE0070)
- 보간 단순화(IDE0071)
- 조건식 단순화(IDE0075)
- 변환
typeof
(nameof
IDE0082) - 불필요한 같음 연산자 제거(IDE0100)
- LINQ 식 단순화(IDE0120)
- 네임스페이스가 폴더 구조와 일치하지 않음(IDE0130)
C# 스타일 규칙:
- throw 식 사용(IDE0016)
- 인라인 변수 선언(IDE0018)
- ‘default’ 식 단순화(IDE0034)
- 람다 대신 로컬 함수 사용(IDE0039)
- 변수 선언 분해(IDE0042)
- 인덱스 연산자 사용(IDE0056)
- 범위 연산자 사용(IDE0057)
- switch 식에 누락된 사례 추가(IDE0072)
- 불필요한 억제 연산자 제거(IDE0080)
- 식 단순화
new
(IDE0090) - 불필요한 무시 제거(IDE0110)
- 형식 검사보다 'null' 검사 선호(IDE0150)
- 튜플을 사용하여 값 바꾸기(IDE0180)
- foreach 루프에 명시적 캐스트 추가(IDE0220)
- UTF-8 문자열 리터럴 사용(IDE0230)
- Nullable 지시문이 중복됨(IDE0240)
- Nullable 지시문이 필요하지 않습니다(IDE0241)
- 배열에 컬렉션 식 사용(IDE0300)
- 비어 있는 경우 컬렉션 식 사용(IDE0301)
- 스택 할당에 컬렉션 식 사용(IDE0302)
Create()
에 대한 컬렉션 식 사용(IDE0303)- 작성기용 컬렉션 식 사용(IDE0304
- 흐름용 컬렉션 식 사용(IDE0305)
Visual Basic 스타일 규칙:
필드 기본 설정
.NET 스타일 규칙(C# 및 Visual Basic):
언어 키워드 및 프레임워크 형식 기본 설정
.NET 스타일 규칙(C# 및 Visual Basic):
한정자 기본 설정
.NET 스타일 규칙(C# 및 Visual Basic):
C# 스타일 규칙:
- 로컬 함수를 정적으로 설정(IDE0062)
- 구조체 필드를 쓰기 가능으로 설정(IDE0064)
- 구조체를 '읽기 전용'으로 만들 수 있습니다(IDE0250).
- 멤버를 '읽기 전용'(IDE0251)으로 만들 수 있습니다.
- 익명 함수를 정적으로 만들기(IDE0320)
줄 바꿈 기본 설정
- 여러 개의 빈 줄 허용(IDE2000)
- 동일한 줄에 포함된 문 허용(IDE2001)
- 연속 중괄호 사이에 빈 줄 허용(IDE2002)
- 블록 바로 후 문 허용(IDE2003)
- 생성자 이니셜라이저에서 콜론 뒤의 빈 줄 허용(IDE2004)
- 조건식에서 토큰 뒤 빈 줄 허용(IDE2005)
- 화살표 식에서 토큰 뒤 빈 줄 허용(IDE2006)
Null 검사 기본 설정
C# 스타일 규칙:
매개 변수 기본 설정
.NET 스타일 규칙(C# 및 Visual Basic):
괄호 기본 설정
.NET 스타일 규칙(C# 및 Visual Basic):
패턴 일치 기본 설정
C# 스타일 규칙:
- 패턴 일치를 사용하여 'as' 뒤에 'null' 검사(IDE0019) 방지
- 패턴 일치를 사용하여 'is' 검사 뒤에 캐스트(IDE0020, IDE0038)를 방지합니다.
- switch 식 사용(IDE0066)
- 패턴 일치 사용(IDE0078 및 IDE0260)
- 패턴 일치 사용(
not
연산자)(IDE0083) - 속성 패턴 단순화(IDE0170)
표시 안 함 기본 설정
.NET 스타일 규칙(C# 및 Visual Basic):
This.
및 me.
기본 설정
.NET 스타일 규칙(C# 및 Visual Basic):
var
선호
C# 스타일 규칙:
참고 항목
.NET