接触AE一段时间了,总的来说收获不少,今天仔细分析了一下AE开发中经常会用到的QI即接口查询,有了自己的一些理解。
COM类至少有一个接口。事实上一般它们有好几个接口。即一个类经常会实现多个接口(一个类无法继承多个类),我们可以通过这个类来定义多个不同的接口,当我们定义了其中某一个接口变量(假设该变量名为Q1)以后,往往我们还需要用到该类所提供的其它接口的方法、属性,这时就得用到了QI,这种情况下我们只需定义一个所需的其他接口的变量(假设变量名为Q2),并且把它指向已经定义了的变量即可,这样就完成了QI,可以使用Q2所在接口拥有的方法和属性了。
初级理解,请指正。
private IPolygon ConstructorPolygon(List<IRing> pRingList)
{
try
{
//创建一个Polygon对象
IGeometryCollection pGCollection = new PolygonClass();
object o = Type.Missing;
//
for(int i=0;i<pRingList.Count;i++)
{
// 通过IGeometryCollection接口的AddGeometry方法向Polygon对象中添加Ring子对象
pGCollection.AddGeometry(pRingList, ref o, ref o);
}
//QI至ITopologicalOperator
ITopologicalOperator pTopological = pGCollection as ITopologicalOperator;
//
pTopological.Simplify();
IPolygon pPolygon=pGCollection as IPolygon;
//
return pPolygon;
}
catch (Exception Err)
{
MessageBox.Show(Err.Message,"提示",MessageBoxButtons.OK,,MessageBoxIcon.Information);
return null;
}
}