??? 接觸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;
?? }
}