C#通过反射接口可以实例化??
答案:3 悬赏:40 手机版
解决时间 2021-04-05 20:19
- 提问者网友:人傍凄凉立暮秋
- 2021-04-05 11:59
Assembly t = Assembly.Load("HelloWorld");Webtest.interface1 obj1 = (Webtest.interface1)t.CreateInstance("Webtest.ReflectTest"); 这是我在网上看到的代码
最佳答案
- 五星知识达人网友:醉吻情书
- 2021-04-05 12:21
反射接口无法实例化。类似的做法是:将接口的引用 指向一个实现类对象。
C#不同于C++,当声明一个引用对象比如 A是个类 ,申明A a;
这时只是 给了一个引用在内存中一个逻辑上叫做托管堆的内存区域上,分配一个引用所需要的内存单元,而不是这个A类的一个实例所需要的内存单元。
C#不同于C++,当声明一个引用对象比如 A是个类 ,申明A a;
这时只是 给了一个引用在内存中一个逻辑上叫做托管堆的内存区域上,分配一个引用所需要的内存单元,而不是这个A类的一个实例所需要的内存单元。
全部回答
- 1楼网友:山河有幸埋战骨
- 2021-04-05 15:06
是的,但是话不能这么说,应该说:接口不可以被实例化,是可以实例化它的实现类,并赋给接口。比如:IInterface1 _interface=new IInterface1() 这是错误的!!但是如果:类:Imp1:IInterface1,即:Imp1是实现了IInterface1接口的,就可以:IInterface1 _interface=new Imp1(); 这是正确的! 如题中,通过Assembly反射,是可以实例化其中对象的!
- 2楼网友:轻熟杀无赦
- 2021-04-05 13:43
ab a = (ab)enum.parse(typeof(ab), "a");
enum.parse方法可以根据字符串生成枚举实例。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯