【发布时间】:2014-06-03 07:15:45
【问题描述】:
假设我在一个类中有两个方法,如下所示:
class Foo
{
public void Convert(string s, int x){ }
public void Convert(string s, double x) { }
}
如果我使用:
var method = typeof (Foo)
.GetMethod("Convert", new[] {typeof (string), typeof (int)});
我得到了正确的方法。但是如果我在第一种方法中更改 x 并使其成为 out 参数:
public void Convert(string s, out int x) { }
然后我得到第二种方法Convert(string s, double x)。
我不明白为什么它不返回第一个方法或至少null 而不是第二个?第二种方法的签名与我提供的类型不匹配。在第二种情况下如何获得正确的方法?有没有办法直接获取?我知道我可以获取所有方法,然后根据参数类型对其进行过滤,但我认为应该有一种直接的方法,但我错过了它......
【问题讨论】:
标签: c# reflection parameters out