CA2264: null을 허용하지 않는 값을 'ArgumentNullException.ThrowIfNull'에 전달하지 마세요.
속성 | 값 |
---|---|
규칙 ID | CA2264 |
제목 | nullable이 아닌 값을 다음으로 전달하지 마세요. ArgumentNullException.ThrowIfNull |
범주 | 사용 현황 |
수정 사항이 주요 변경인지 여부 | 주요 변경 아님 |
.NET 9에서 기본적으로 사용 | 경고로 |
원인
null이 아닌 것으로 알려진 값이 전달되면 ArgumentNullException.ThrowIfNull()
예외가 throw되지 않고 문이 no-op이 됩니다.
규칙 설명
ArgumentNullException.ThrowIfNull
는 전달된 인수가 될 때 throw됩니다 null
. null을 허용하지 않는 구조체(제외 Nullable<T>), null을 허용하지 않는 구조체로 알려진 형식 매개 변수, 'nameof()' 식 및 'new' 식과 같은 특정 구문은 null이 아닌 것으로 알려져 있으므로 ArgumentNullException.ThrowIfNull
throw되지 않습니다.
구조 ArgumentNullException.ThrowIfNull
체의 경우 구조체를 허용하므로 object?
구조체가 박스로 표시되어 추가 성능 저하가 발생합니다.
위반 문제를 해결하는 방법
호출을 제거합니다 ArgumentNullException.ThrowIfNull
.
예시
다음 코드 조각은 CA2264 위반을 보여줍니다.
static void Print(int value)
{
ArgumentNullException.ThrowIfNull(value);
Console.WriteLine(value);
}
다음 코드 조각은 이 위반을 해결합니다.
static void Print(int value)
{
Console.WriteLine(value.Value);
}
경고를 표시하지 않는 경우
이 경고를 표시하지 않는 것은 항상 안전합니다.
경고 표시 안 함
단일 위반만 표시하지 않으려면 원본 파일에 전처리기 지시문을 추가하여 규칙을 사용하지 않도록 설정한 후 다시 사용하도록 설정합니다.
#pragma warning disable CA2264
// The code that's violating the rule is on this line.
#pragma warning restore CA2264
파일, 폴더 또는 프로젝트에 대한 규칙을 사용하지 않도록 설정하려면 구성 파일에서 심각도를 none
으로 설정합니다.
[*.{cs,vb}]
dotnet_diagnostic.CA2264.severity = none
자세한 내용은 방법: 코드 분석 경고 표시 안 함을 참조하세요.
.NET