varsayılan parametre değeri, bir argüman olarak bir IntPtr
alan bir işlev kullanmak istiyorum. IntPtr.Zero
derleme zamanı sabiti olmadığı için bu mümkün değildir.C#, bir IntPtr
İstediğimi yapabileceğim herhangi bir yolu var mı?
varsayılan parametre değeri, bir argüman olarak bir IntPtr
alan bir işlev kullanmak istiyorum. IntPtr.Zero
derleme zamanı sabiti olmadığı için bu mümkün değildir.C#, bir IntPtr
İstediğimi yapabileceğim herhangi bir yolu var mı?
Biraz unintuitive, en hafif deyimiyle, sen yeni operatörünü kullanarak bunu elde:
eğlence içindivoid Foo(IntPtr arg = new IntPtr()) {
}
, muhtemelen tadını bu bir daha:
void Foo(IntPtr arg = default(IntPtr)) {
}
IntPtr
bir yapı olduğundan, Nullable-of-T?
static void SomeMethod(IntPtr? ptr = null) {
var actualPtr = ptr ?? IntPtr.Zero;
//...
}
Darn, "varsayılan" ın işe yarayabileceğini bir önsezim vardı, ama kontrol etmek için yakın bir derleyici yok - bu yüzden güvenli oynadı. İyi cevap. –