首页 新闻 会员 周边

求教为什么接口可以实例化?

0
悬赏园豆:10 [已解决问题] 解决于 2010-07-15 10:09

Excel.Application excelApp = new Excel.Application();

以下是Application的定义

using System.Runtime.InteropServices;

namespace Excel
{
    [CoClass(typeof(ApplicationClass))]
    [Guid("000208D5-0000-0000-C000-000000000046")]
    public interface Application : _Application, AppEvents_Event
    {
    }
}

既然Application属于interface,那么按照我的理解,接口只能实现,不能实例化。

哪位大侠能帮我解释下,走出迷雾?

路西的灯的主页 路西的灯 | 初学一级 | 园豆:150
提问于:2010-07-14 17:19
< >
分享
最佳答案
0

 

既然Application属于interface,那么按照我的理解,接口只能实现,不能实例化。

哪位大侠能帮我解释下,走出迷雾?

接口本身是不能直接实例化,但是有继承后重写其中的方法,然后成为一个类才能实例化

上例中是因为你加 Application的接口上加了[CoClass(typeof(ApplicationClass))]

该属性获取原始 coclass 的类标识符。

 

收获园豆:5
火星贝贝 | 菜鸟二级 |园豆:230 | 2010-07-14 17:56
其他回答(3)
0

[CoClass(typeof(ApplicationClass))]

Launcher | 园豆:45045 (高人七级) | 2010-07-14 17:30
1

这是比较特殊的东西,是属于COM交互的部分,以CoClass为标记实例化接口,实际实例化的是ApplicationClass

收获园豆:5
Gray Zhang | 园豆:17610 (专家六级) | 2010-07-14 19:06
0

参考:http://www.cnblogs.com/xuneng/archive/2009/05/25/1488941.html

Astar | 园豆:40805 (高人七级) | 2010-07-15 08:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册