2

私は、下位の C/C++ コードを C# でラップする GIS ベースの数学ライブラリを使用しています。パラメータの多くは、複数の出力を受け取るために参照渡しになっています。一部の出力のみが必要な場合、他のパラメーターを無視するにはどうすればよいですか? ダミー変数を作成して参照渡しし、その出力を無視する最善の解決策はありますか?

4

4 に答える 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 に答える