다음을 통해 공유


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

속성
규칙 ID IDE0220
제목 명시적 캐스트 추가
범주 스타일
하위 범주 언어 규칙(식 수준 기본 설정)
해당 언어 C#
옵션 dotnet_style_prefer_foreach_explicit_cast_in_source

개요

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

옵션

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

dotnet_style_prefer_foreach_explicit_cast_in_source

속성 설명
옵션 이름 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

자세한 내용은 방법: 코드 분석 경고 표시 안 함을 참조하세요.

추가 정보