방금 IntPtr.Zero를 기본값 (IntPtr)과 비교할 수없는 어려운 방법을 배웠습니다. 누군가 왜 저에게 말할 수 있습니까?IntPtr.Zero와 기본값 (IntPtr)을 비교할 수없는 이유는 무엇입니까?
IntPtr.Zero == new IntPtr(0) -> "could not evaluate expression"
IntPtr.Zero == default(IntPtr) --> "could not evaluate expression"
IntPtr.Zero == (IntPtr)0 -> "could not evaluate expression"
IntPtr.Zero.Equals(IntPtr.Zero) --> "Enum value was out of legal range" exception
IntPtr.Zero.Equals(default(IntPtr)) --> "Enum value was out of legal range" exception
IntPtr.Zero == IntPtr.Zero --> true
new IntPtr(0) == new IntPtr(0) --> true
비교해도 좋고 동일합니다. 'var isEqual = IntPtr.Zero == new IntPtr (0);'이고 isEqual은 true입니다. – vcsjones
저에게 맞습니다. 어떤 플랫폼을 사용하고 있으며 어떤 프레임 워크 버전입니까? – Botz3000
http://ideone.com/BJqvB'IntPtr.Zero == default (IntPtr)'는 true를 출력합니다. 이것은 어떤 맥락인가? –