Я хотел бы использовать значение параметра по умолчанию IntPtr.Zero в функции, которая принимает IntPtr в качестве аргумента. Это невозможно, так как IntPtr.Zero не является постоянной времени компиляции.
Есть ли способ сделать то, что я хочу?
Ответ 1
Немного неинтуитивно, мягко говоря, вы получите его с помощью нового оператора:
void Foo(IntPtr arg = new IntPtr()) {
}
Это было весело, вам, вероятно, понравилось это лучше:
void Foo(IntPtr arg = default(IntPtr)) {
}
Ответ 2
Так как IntPtr является структурой, вы можете использовать Nullable-of-T?