17

IntPtr.Zeroを引数として取る関数で、のデフォルトのパラメータ値を使用したいと思いIntPtrます。IntPtr.Zeroコンパイル時定数ではないため、これは不可能です。

やりたいことができる方法はありますか?

4

2 に答える 2

33

やや直感的ではありませんが、控えめに言って、新しい演算子を使用して取得します。

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

それは楽しみのためでした、あなたはおそらくこれをよりよく楽しむでしょう:

    void Foo(IntPtr arg = default(IntPtr)) { 
    }
于 2012-10-21T16:24:51.947 に答える
5

は構造体なのでIntPtr、Nullable-of-Tを使用できますか?

static void SomeMethod(IntPtr? ptr = null) {
    var actualPtr = ptr ?? IntPtr.Zero;
    //...
 }
于 2012-10-21T16:08:59.843 に答える