컴파일러 경고(수준 3) CS1718
같은 변수를 비교했습니다. 다른 요소를 비교하시겠습니까?
다른 것과 비교하려고 했다면 문을 수정합니다.
그러나 true 또는 false인지를 테스트하고 있으며, if (a == a) (true)
또는 if (a < a) (false)
와 같은 문으로 테스트했을 수도 있습니다. 다음 두 가지 이유로 if (true)
또는 if (false)
를 사용하는 것이 더 좋습니다.
더 단순합니다. 항상 의도한 바를 단순히 지정하는 것이 더 명확합니다.
혼동을 방지합니다. C# 2.0의 새로운 기능은 SQL Server에서 사용되는 프로그래밍 언어인 T-SQL의
null
값과 유사한 nullable 값 형식입니다. T-SQL에 익숙한 개발자는 T-SQL에서 3개로 구성된 논리를 사용하기 때문에if (a == a)
와 같은 식에 null 허용 값 형식이 미치는 영향에 대해 우려할 수 있습니다.true
또는false
를 사용하는 경우 이러한 혼동을 방지할 수 있습니다.
다음 코드는 CS1718 경고를 생성합니다.
// CS1718.cs
using System;
public class Tester
{
public static void Main()
{
int i = 0;
if (i == i) { // CS1718.cs
//if (true) {
i++;
}
}
}
.NET 피드백
.NET은(는) 오픈 소스 프로젝트입니다. 다음 링크를 선택하여 피드백을 제공해 주세요.