我正在从C++过渡到C#,并且我有一个令我困惑的方法调用。我想我也许能猜出它是做什么的,但如果有专家直接告诉我,我会很感激:
WDResult returnValue = (WDResult)Invoke(
(MethodInfo)MethodBase.GetCurrentMethod(),
new object[] { request, loadType });在我看来,它似乎是在使用反射来引用已经被调用的方法。我不明白为什么有人会这样做,如果是这样的话。另外,为什么要使用反射而不是仅仅使用递归调用呢?请注意,在代码中,调用中没有使用不同的重载。参数request和loadType几乎直接传递到该代码中出现的函数的第一行中。
发布于 2012-06-05 04:01:15
这是在调用一个接受MethodInfo的自定义Invoke()方法。
它不是标准反射。
查看Invoke()方法,以了解他们为什么要这样做。
发布于 2012-06-05 04:06:58
还有,为什么你要用反射而不仅仅是递归调用呢?
您可以将该行复制粘贴到其他方法中,只要它们接受相同的参数,它仍然可以工作。
https://stackoverflow.com/questions/10887513
复制相似问题