다음을 통해 공유


foreach 루프에 명시적 캐스트 추가(IDE0220)

재산
규칙 ID IDE0220
타이틀 명시적 캐스트 추가
범주 스타일
하위 범주 언어 규칙(표현 수준 선호도)
적용 가능한 언어 C#
옵션 dotnet_style_prefer_foreach_explicit_cast_in_source

개요

이 규칙은 컴파일러가 숨겨진 캐스트를 추가할 때 foreach 루프에 명시적 캐스트가 없는 것을 표시합니다. 제네릭 또는 강타입 컬렉션의 경우, 컴파일러가 자동으로 추가하는 캐스트 대신 명시적 캐스트를 강제하면 foreach 문에서 잘못된 형식의 사용을 발견할 수 있습니다.

옵션

옵션은 규칙을 적용할 동작을 지정합니다. 옵션 구성에 대한 자세한 내용은 옵션 형식참조하세요.

dotnet_style_prefer_foreach_explicit_cast_in_source (인 소스 코드에서 foreach 문법 사용 시 명시적 캐스트 선호)

재산 묘사
옵션 이름 dotnet_style_prefer_foreach_explicit_cast_in_source
옵션 값 always 소스 코드에서 명확한 캐스트를 선호하십시오.
when_strongly_typed 강력한 형식의(제네릭) 컬렉션에는 명시적 캐스트를 선호하지만 ArrayList같은 레거시 컬렉션에는 사용하지 않는 것이 좋습니다.
기본 옵션 값 when_strongly_typed

본보기

// Code with violations.
var list = new List<object>();
foreach (string item in list) { }

// Fixed code.
var list = new List<object>();
foreach (string item in list.Cast<string>())

경고 표시 안 함

단일 위반만 표시하지 않으려면 소스 파일에 전처리기 지시문을 추가하여 규칙을 사용하지 않도록 설정한 다음 다시 사용하도록 설정합니다.

#pragma warning disable IDE0220
// The code that's violating the rule is on this line.
#pragma warning restore IDE0220

파일, 폴더 또는 프로젝트에 대한 규칙을 사용하지 않도록 설정하려면 해당 심각도를 구성 파일none 설정합니다.

[*.{cs,vb}]
dotnet_diagnostic.IDE0220.severity = none

모든 코드 스타일 규칙을 비활성화하려면 구성 파일에서 범주 Style의 심각도를 none로 설정합니다.

[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none

자세한 내용은 코드 분석 경고표시하지 않는 방법을 참조하세요.

참조