почему невозможно сравнить IntPtr.Zero и default(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
6
задан John Smith 6 June 2012 в 14:01
поделиться