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 回答