ArcEngine中CoClass和Class的理解

ArcEngine中CoClass和Class的理解
2008-03-17 10:27

       学AE也有一段时间了,这几天看了一下朱政的《ArcEngine的开发于部署》演示稿,里面有提到CoClass和Class,感觉不太明白。然后就查阅了一些AE的OMD图,个人感觉在OMD图中比较难理解的就是可实例化类CLASS。因为这个在C#里貌似没有这个概念,而且网上的资料也非常稀少。
       我做了以下例子对CoClass和Class做了个初步理解:

======================================
ArcEngine中 workSpace 就是一个可实实例化类
WorkSpace不能用new创建,但可以通过WorkSpaceFarctory.Openfromfile()方法来创建.如下:

IWorkspaceFactory pWorkspaceFactory = new AccessWorkspaceFactoryClass();
IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(ConnectionString, 0);

但当我们尝试用New去创建一个Workspace类时,如下:
IWorkspace
pWorkspace = new WorkspaceClass();
就会出现以下错误:
“类型”ESRI.ArcGIS.Geodatabase.WorkspaceClass未定义构造函数;

所以,Class和CoClass的主要区别就是CoClass是带构造函数的Class.以此它可以用New直接创建对象。
======================================

以下为演示稿截图:

其中,Nest和Chicken 是聚合关系(Aggregation),既它们之间不共存。
        Wings和Chicken是组合关系(Composition),它们共存,翅膀是鸡的一部分,鸡不在了翅膀也就没了。

我们可以:
iChicken pChicken   //iChicken is an interface of Chicken
ppChicken = new Chicken //创建Chicken对象

iEgg pEgg //iEgg is an interface of Egg

//通过"Chicken"对象的"iChicken"接口下的“layeggs()"方法创建“Egg”对象
pEgg =pChicken.layegg();

基本的interface、method、coclass、class用法都在里边了

来自:http://hi.baidu.com/murphy1314/blog/item/401b0aa749910491d1435882.html

 
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值