【发布时间】:2011-12-18 08:54:33
【问题描述】:
为什么通过反射调用方法比创建接口然后通过反射调用它要慢得多。第一个版本显示繁琐的方式另一个版本显示增强的方式??
// first version
class A
{
public void fn()
{
}
}
void Main(String[]x)
{
Type type = typeof(A);
object obj = Activator.CreateInstance(type);
type.InvokeMember("fn", BindingFlags.Public, null, obj, null);
}
//second verison
interface IA
{
void fn();
}
class A :IA
{
public void fn()
{
}
}
void Main(String []x)
{
Type type = typeof(A);
IA obj =(IA) Activator.CreateInstance(type);
obj.fn();
}
【问题讨论】:
-
您没有在第二个示例中反映方法调用;您所做的只是正常调用一个方法。此外,您没有提供任何基准。
标签: c# reflection interface