首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

c# 反射有关问题

2013-01-28 
c# 反射问题比如现在有接口 ITest,里面有方法 Log ,类 A 实现ITest,定义一个工厂,返回ITest类型的实例现在

c# 反射问题
比如现在有接口 ITest,里面有方法 Log ,
类 A 实现ITest,
定义一个工厂,返回ITest类型的实例
现在用工厂反射 ( Assembly.LoadFrom.CreateInstance ) 得到A的实例 instance
现在想调用Log方法,查了一下 ,有两种

1: type.GetMethod("Log").Invoke(instance)
2:   instance.Log  

这两种有什么区别啊?
[解决办法]
1、通过反射来调用Log函数。反射的类不需要定义接口
2、是通过CreateInstance再转成接口类型,可以直接调用Log函数。反射的类必须定义接口

1的效率要比2低


[解决办法]
1是你不确定有没有这个方法,就可以调用,
2是这个实例必须已经定义了这个方法你才能调用。

热点排行