Я просто усвоил, что IntPtr.Zero не может сравниться с по умолчанию (IntPtr). Может кто-нибудь сказать мне, почему?Почему нельзя сравнивать IntPtr.Zero и default (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
они сравнивают хорошо, и они равны: 'вар IsEqual = IntPtr.Zero == новый IntPtr (0);' и IsEqual верно. – vcsjones
Работает для меня. На какой платформе вы работаете и какая версия фреймворка? – Botz3000
http://ideone.com/BJqvB 'IntPtr.Zero == default (IntPtr)' выводит true. В каком контексте это? –