QI(接口查询)

    接触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;


    //
遍历Ring集合
   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;


  //
执行Simplify操作
  pTopological.Simplify();


  IPolygon pPolygon=pGCollection as IPolygon;


   //
返回Polygon对象
   return pPolygon;

 }


  catch (Exception Err)

  {

      MessageBox.Show(Err.Message,"
提示",MessageBoxButtons.OK,,MessageBoxIcon.Information);
       return null;

   }


}

posted @ 2009-05-17 11:33  MYGIS_3  阅读(469)  评论(0)    收藏  举报