Ho appena imparato a memoria che IntPtr.Zero non può essere paragonato al valore predefinito (IntPtr). Qualcuno può dirmi perché?perché non è possibile confrontare IntPtr.Zero e 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
confrontano bene, e sono uguali: 'var IsEqual = == IntPtr.Zero nuovo IntPtr (0);' e IsEqual è vero. – vcsjones
Funziona per me. Su che piattaforma sei e quale versione del framework? – Botz3000
http://ideone.com/BJqvB 'IntPtr.Zero == default (IntPtr)' restituisce true. In quale contesto è questo? –