1

C ++からC#に移行していますが、混乱を招くメソッド呼び出しがあります。私はそれが何をするのか推測できるかもしれないと思いますが、専門家が私にまっすぐに言ってくれれば幸いです:

WDResult returnValue = (WDResult)Invoke(
    (MethodInfo)MethodBase.GetCurrentMethod(),
    new object[] { request, loadType });

すでに呼び出されているメソッドを情報化するためにリフレクションを使用しているように見えます。それが事実なら、なぜそうするのか理解できません。また、再帰呼び出しだけでなく、リフレクションを使用してそれを行うのはなぜですか?コードでは、呼び出しで別のオーバーロードが使用されていないことに注意してください。パラメータrequestとloadTypeは、このコードに表示される関数の最初の行で、ほとんど直接このコードに渡されます。

4

2 に答える 2

3

Invoke()これは、 を受け取るカスタムメソッドを呼び出していますMethodInfo
標準的な反射ではありません。

Invoke()メソッドを調べて、なぜそうしているのかを確認してください。

于 2012-06-04T20:01:14.717 に答える
1

また、再帰呼び出しだけでなく、リフレクションを使用するのはなぜですか?

その行をコピーして他のメソッドに貼り付けることができますが、それらが同じ引数を取る場合は引き続き機能します。

于 2012-06-04T20:06:57.793 に答える