C#,IntPtr的默认参数值
我想在一个以IntPtr
作为参数的函数中使用IntPtr.Zero
的默认参数值。 这是不可能的,因为IntPtr.Zero
不是编译时常量。
有什么方法可以做我想要的吗?
有点不直观,说得温和一点,你可以通过使用new运算符得到它:
void Foo(IntPtr arg = new IntPtr()) { }
这很有趣,你可能更喜欢这个:
void Foo(IntPtr arg = default(IntPtr)) { }
由于IntPtr
是一个结构,你可以使用Nullable-of-T?
static void SomeMethod(IntPtr? ptr = null) { var actualPtr = ptr ?? IntPtr.Zero; //... }