다음과 같은 코드 블록을 사용하여 강화 된 null 포인터 (경고는 강조 표시된 코드 섹션에서 발생 함)에 대해 경고합니다.참조 역 참조 null 포인터
이 거짓 긍정적인가? 경고가 발생하는 곳이 null인지 여부를 확인합니다.
업데이트 : 코드를 조금 더 추가했습니다. displayAttribute가 null이 아닌지 확인하기 전에 손을 검사하고 있습니다. 그것은 IsNotNull()이 확장 메서드이기 때문에 가능합니까?
다음과 같은 코드 블록을 사용하여 강화 된 null 포인터 (경고는 강조 표시된 코드 섹션에서 발생 함)에 대해 경고합니다.참조 역 참조 null 포인터
이 거짓 긍정적인가? 경고가 발생하는 곳이 null인지 여부를 확인합니다.
업데이트 : 코드를 조금 더 추가했습니다. displayAttribute가 null이 아닌지 확인하기 전에 손을 검사하고 있습니다. 그것은 IsNotNull()이 확장 메서드이기 때문에 가능합니까?
경고는 displayAttribute
자체가 null
하지 Name
이 될 수 있다는 것이다. 그런 경우 Name
속성에 액세스하면 NullReferenceException
이 발생합니다. displayAttribute
명시 적으로 바로 경고 아래 null
을 위해 선택되어 있는지 감안할 때이 경고가 유효한 것으로 보인다
편집은 속성이 null
이 아니라는 것을 확인하기 위해 확장 방법을 사용하는 것 같습니다
. 이런 식으로 확장 메서드를 사용하는 것은 다소 직관적 인 것처럼 보입니다. 분석 엔진은 이것이 당신이 여기서하는 일이라는 것을 추론 할 수 없기 때문에 나와 일치하는 것으로 보입니다.
그렇다면 경고를 무시할 수 있지만 그 이유는 무엇입니까? 보통 displayAttribute != null
체크 만하면 개발자와 분석 엔진이 코드가 실제로하는 일을보다 쉽게 추론 할 수 있습니다.
스크린 샷을 업데이트했습니다. displayAttribute가 null이 아닌지 확인합니다. 미안해. 그 전에는 포함시키지 않았다. –
확장 방법에 대해 전적으로 동의합니다. 실제로 보안 문제를 수정하면서 구축하지 않았습니다. 그것은 나에게도 그렇게 할 수 없다. 의견을 보내 주셔서 감사합니다. –