读书人

小弟我遇到一个接口居然可以被实例化

发布时间: 2013-04-07 12:50:11 作者: rapoo

我遇到一个接口居然可以被实例化,求解释
小弟我遇到一个接口居然可以被实例化,求解释
[解决办法]
因为该COM接口被标记为[CoClass(typeof(XX))]。
coclass就是实现COM接口的实体。你可以理解XX就是该实体,而C#允许该种写法(可能为了兼容老版本)。
[解决办法]
这是C#玩的魔术。事实上它会在幕后产生一个com存根类。
[解决办法]

引用:
因为该COM接口被标记为[CoClass(typeof(XX))]。
coclass就是实现COM接口的实体。你可以理解XX就是该实体,而C#允许该种写法(可能为了兼容老版本)。

作了个测试

[CoClass(typeof(TestInterClass))]
public interface TestInter
{ }
public class TestInterClass
{
public TestInterClass()
{ }
}

TestInter test = new TestInter(); //wrong

读书人网 >C#

热点推荐