私が次の署名を持っているとしましょう:
static extern void External(int foo, IntPtr bar);
デフォルトを使用したい:
static extern void External(int foo = 10, IntPtr bar = default(IntPtr));
これは有効ですか?C++ では、ポインタを 0 または null に使用します。C# では、IntPtr が値なのか参照なのかさえ明確ではありません。
関数を手動で呼び出す場合は、 を使用しますExternal(10, IntPtr.Zero);
。私の質問は次のとおりだと思います:default(IntPtr)
と同じ動作をしIntPtr.Zero
ますか?