私は、下位の C/C++ コードを C# でラップする GIS ベースの数学ライブラリを使用しています。パラメータの多くは、複数の出力を受け取るために参照渡しになっています。一部の出力のみが必要な場合、他のパラメーターを無視するにはどうすればよいですか? ダミー変数を作成して参照渡しし、その出力を無視する最善の解決策はありますか?
2042 次
4 に答える
1
私は通常、自分のコードで次のようなオブジェクトを作成するだけです
object NotNeeded = null;
または、事実上不要なパラメーターであり、それを繰り返し使用すると言う同様のもの。ただし、GIS ライブラリが反対側で何をしているのかわからないため、それが機能するかどうかはわかりません。それぞれに実際のnull以外の値が必要な場合、それは問題になる可能性があります。
于 2011-05-17T20:23:29.460 に答える
1
いくつかの選択肢があります:
- ダミー
- ラッパーメソッド
- 相互運用インポートを変更します。
ref
パラメーターは C++ のポインターである可能性が高く、許可されている場合null
は、インポートを変更してポインター (IntPtr) を使用し、 / を渡すことができnull
ますIntPtr.Zero
。
しかし、非常に多くの呼び出しがない限り、いくつかのダミーがおそらく最良の (最も読みやすい) オプションです。
于 2011-05-17T20:28:11.313 に答える
0
「最良」は、私が認識している「唯一の」コンパイル時の方法です。foo(bar, ref dummy)
-- しかし、意味がある場合は、これらのダミー変数を自由にラップしてください。
インスタンス メソッドがある場合、適切な拡張メソッドラッパーを作成すると、「役に立たない」ダミー変数を比較的シームレスな方法で隠すことができます。
ハッピーコーディング。
于 2011-05-17T20:22:22.790 に答える