C#, default parameter value for an IntPtr

c#, default-parameters, intptr

Solution

Somewhat unintuitive, to put it mildly, you get it by using the new operator:

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

That was for fun, you probably enjoy this one better:

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

Problem

I'd like to use a default parameter value of `IntPtr.Zero` in a function that takes an `IntPtr` as an argument. This is not possible as `IntPtr.Zero` is not a compile time constant. Is there any way I can do what I want?

Original source