Tôi vừa học được cách khó mà IntPtr.Zero không thể so sánh với mặc định (IntPtr). Ai đó có thể cho tôi biết tại sao?tại sao không thể so sánh IntPtr.Zero và mặc định (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
Chúng so sánh tốt và bằng nhau: 'var isEqual = IntPtr.Zero == new IntPtr (0);' và isEqual là đúng. – vcsjones
Làm việc cho tôi. Bạn đang sử dụng nền tảng nào và phiên bản khung công tác nào? – Botz3000
http://ideone.com/BJqvB 'IntPtr.Zero == mặc định (IntPtr)' kết quả đầu ra đúng. Trong bối cảnh này là gì? –