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
은 struct이므로 Nullable-of-T?를 사용할 수 있습니까?
static void SomeMethod(IntPtr? ptr = null) {
var actualPtr = ptr ?? IntPtr.Zero;
//...
}
젠장, 나는 "디폴트"가 작동 할지도 모르는 직감을 보았지만 체크 할 컴파일러가 근처에 없었기 때문에 안전했다. 좋은 대답. –