Search code examples
c#intptrdefault-parameters

C#, default parameter value for an IntPtr


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?


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)) { 
        }