2012-10-21 8 views

risposta

26

Un po 'poco intuitivo, per usare un eufemismo, si ottiene utilizzando l'operatore nuova:

void Foo(IntPtr arg = new IntPtr()) { 
    } 

Questo è stato per divertimento, probabilmente godere di questo uno migliore:

void Foo(IntPtr arg = default(IntPtr)) { 
    } 
+1

Dannazione, ho avuto l'impressione che "default" potrebbe funzionare, ma nessun compilatore è nelle vicinanze per controllare - quindi l'ho suonato sicuro. Buona risposta. –

3

Poiché IntPtr è una struttura, è possibile utilizzare Nullable-of-T?

static void SomeMethod(IntPtr? ptr = null) { 
    var actualPtr = ptr ?? IntPtr.Zero; 
    //... 
}