我正在从C ++过渡到C#,我有一个令我困惑的方法调用。我想我可能会猜到它的作用,但我很欣赏专家直接告诉我的事情:
WDResult returnValue = (WDResult)Invoke(
(MethodInfo)MethodBase.GetCurrentMethod(),
new object[] { request, loadType });
在我看来,它使用反射来调用已经被调用的方法。我不明白为什么如果是这样的话就会这样做。另外,为什么你会用反射而不仅仅是递归调用呢?请注意,在代码中,调用中未使用不同的重载。参数request和loadType几乎直接传递到它出现的函数的第一行中的代码中。
答案 0 :(得分:3)
这是一种自定义Invoke()
方法,需要MethodInfo
这不是标准的反思。
查看Invoke()
方法,了解他们为何会这样做。
答案 1 :(得分:1)
另外,为什么要用反射而不仅仅是递归调用呢?
您可以将该行复制粘贴到其他方法中,只要它们采用相同的参数,它仍然有效。