2012-10-21 51 views

Trả lời

26

Hơi unintuitive, để đặt nó nhẹ nhàng, bạn sẽ có được nó bằng cách sử dụng toán tử mới:

void Foo(IntPtr arg = new IntPtr()) { 
    } 

Đó là cho vui, bạn có thể thưởng thức một tốt hơn:

void Foo(IntPtr arg = default(IntPtr)) { 
    } 
+1

Darn, tôi đã có một linh cảm rằng "mặc định" có thể làm việc, nhưng không có trình biên dịch gần đó để kiểm tra - để chơi nó an toàn. Câu trả lời tốt. –

3

IntPtr là cấu trúc, bạn có thể sử dụng Nullable-of-T?

static void SomeMethod(IntPtr? ptr = null) { 
    var actualPtr = ptr ?? IntPtr.Zero; 
    //... 
} 
Các vấn đề liên quan