如题所述
坦白的说,从你提的这个问题,不难看出你的语言功底不很过关!
像一些基础数据类型(int、float、double、char、enum等)它们之间是可以实现相互转化的。
但是一些高级一点的数据类型(struct、class、interface等)就不是这样了,它们之间只有存在相互的继承关系才可以实现互相转化。如:一个小学生类Primary继承 一个学生类Student,而学生类Student则继承于一个学生接口IStudent和一个人类Person,那么Primary类就可以转化为其父类型(即:Student类类型、IStudent接口类型和Person类类型),而转化后的数据类型也可以还原为其原类型及其相关类型。
在ArcEngine中存在大量的有相互继承关系的接口,其中大部份的接口都有相关的一个或几个类继承它(如:FeatureLayer 继承于 ILayer),当然有一些没有被类实现的基础接口(如:IGeometry)。正如上段所说,高级数据类型间有继承关系的才可以实现互相转化。你如果要知道某类型是否能转化为另一类型,就必须知道其间是否存在继承关系。你可以通过查阅ArcGIS Developer Help或者参阅ArcGIS安装目录里的PDF文档(在...\ArcGIS\DeveloperKit\Diagrams文件夹中)。
希望对你有帮助!
像一些基础数据类型(int、float、double、char、enum等)它们之间是可以实现相互转化的。
但是一些高级一点的数据类型(struct、class、interface等)就不是这样了,它们之间只有存在相互的继承关系才可以实现互相转化。如:一个小学生类Primary继承 一个学生类Student,而学生类Student则继承于一个学生接口IStudent和一个人类Person,那么Primary类就可以转化为其父类型(即:Student类类型、IStudent接口类型和Person类类型),而转化后的数据类型也可以还原为其原类型及其相关类型。
在ArcEngine中存在大量的有相互继承关系的接口,其中大部份的接口都有相关的一个或几个类继承它(如:FeatureLayer 继承于 ILayer),当然有一些没有被类实现的基础接口(如:IGeometry)。正如上段所说,高级数据类型间有继承关系的才可以实现互相转化。你如果要知道某类型是否能转化为另一类型,就必须知道其间是否存在继承关系。你可以通过查阅ArcGIS Developer Help或者参阅ArcGIS安装目录里的PDF文档(在...\ArcGIS\DeveloperKit\Diagrams文件夹中)。
希望对你有帮助!
温馨提示:答案为网友推荐,仅供参考