13
我想這需要一個IntPtr
作爲自變量的函數中使用的IntPtr.Zero
默認參數值默認參數值。這是不可能的,因爲IntPtr.Zero
不是編譯時間常量。C#,對於一個IntPtr
有什麼辦法,我可以做我想做什麼?
我想這需要一個IntPtr
作爲自變量的函數中使用的IntPtr.Zero
默認參數值默認參數值。這是不可能的,因爲IntPtr.Zero
不是編譯時間常量。C#,對於一個IntPtr
有什麼辦法,我可以做我想做什麼?
有點不直觀,說得客氣一點,通過使用新運營商處獲得它:
void Foo(IntPtr arg = new IntPtr()) {
}
這是爲了好玩,你可能會喜歡這更好:
void Foo(IntPtr arg = default(IntPtr)) {
}
由於IntPtr
是一個結構,你可以使用可空-的-T?
static void SomeMethod(IntPtr? ptr = null) {
var actualPtr = ptr ?? IntPtr.Zero;
//...
}
該死的,我有一個預設「默認」可能工作,但沒有編譯器附近檢查 - 所以玩它安全。好答案。 –