CA2248: Enum.HasFlag에 올바른 열거형 인수 제공
속성 | 값 |
---|---|
규칙 ID | CA2248 |
제목 | Enum.HasFlag에 올바른 enum 인수를 제공하세요. |
범주 | 사용 현황 |
수정 사항이 주요 변경인지 여부 | 주요 변경 아님 |
.NET 9에서 기본적으로 사용 | 제안 사항 |
원인
HasFlag
메서드 호출에 인수로 전달된 열거형 형식이 호출하는 열거형 형식과 다릅니다.
규칙 설명
Enum.HasFlag
메서드는 해당 메서드가 호출되는 인스턴스와 동일한 enum
형식의 enum
인수를 예상합니다. 해당 형식이 다른 enum
형식인 경우 처리되지 않은 예외가 런타임에 throw됩니다.
위반 문제를 해결하는 방법
위반 문제를 해결하려면 인수와 호출자 모두에 동일한 열거형 형식을 사용합니다.
public class C
{
[Flags]
public enum MyEnum { A, B, }
[Flags]
public enum OtherEnum { A, }
public void Method(MyEnum m)
{
m.HasFlag(OtherEnum.A); // Enum types are different, this call will cause an `ArgumentException` to be thrown at run time
m.HasFlag(MyEnum.A); // Valid call
}
}
경고를 표시하지 않는 경우
이 규칙에서는 위반을 표시해야 합니다.
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET