Share via


경고 CA2013: 값 형식에 ReferenceEquals를 사용 안 함

.NET 코드 분석기 규칙 CA2013은 .NET 5부터 기본적으로 사용됩니다. ReferenceEquals(Object, Object)를 사용하여 하나 이상의 값 형식이 같은지 비교하는 코드에 대한 빌드 경고를 생성합니다.

변경 내용 설명

.NET 5부터 .NET SDK에는 .NET 소스 코드 분석기가 포함됩니다. CA2013을 포함하여 해당 규칙 중 여러 개가 기본적으로 사용됩니다. 해당 규칙을 위반하는 코드가 프로젝트에 포함되고 프로젝트가 경고를 오류로 처리하도록 구성된 경우 해당 변경으로 인해 빌드의 호환성이 손상될 수 있습니다.

규칙 CA2013은 ReferenceEquals(Object, Object)를 사용하여 하나 이상의 값 형식이 같은지 비교하는 인스턴스를 찾습니다. 이런 방식으로 값 형식이 같은지 비교하면 비교되기 전에 값이 boxing되므로 잘못된 결과가 발생할 수 있습니다. 비교된 값이 동일한 값 형식 인스턴스를 나타내는 경우에도 ReferenceEquals(Object, Object)false를 반환합니다.

도입된 버전

5.0

  • == 등의 적절한 같음 연산자를 사용하도록 코드를 변경합니다. 이 경고는 표시하지 않아야 합니다.

  • 코드 분석을 완전히 사용하지 않으려면 프로젝트 파일에서 EnableNETAnalyzersfalse로 설정합니다. 자세한 내용은 EnableNETAnalyzers를 참조하세요.

영향을 받는 API