C#.NET描述arcobjects中的介面、類的關係

來源:互聯網
上載者:User
要理解AO中的類與介面,啥都不說,看代碼:/*
 * Created by SharpDevelop.
 * User: noo
 * Date: 2009-8-19
 * Time: 10:01
 * 
 * AO中類、介面的關係,一個類繼承自多個介面,MapClass類繼承自IActiveView和IMap
 */

using System ;
interface IActiveView//當前視圖介面
{
    void Refresh();//重新整理方法
    bool ShowScrollBars//是否顯示比例尺屬性,可讀寫
    {
        get;
        set;
    }
}
interface IMap//地圖介面
{
    void AddLayer();//添加圖層方法
    int LayerCount//圖層個數屬性,唯讀
    {
        get;
    }
}
class MapClass:IActiveView,IMap//地圖類繼承自上面兩個介面,實際不止這兩個,還包括像IGraphicsContainer等。
{
    void IActiveView.Refresh()//為說明原理,以下的方法或屬性並不是實際的AO中的方法或屬性的實現結果
    {
        Console.WriteLine ("重新整理當前視圖。");
    }
    private bool isShow;
    bool IActiveView.ShowScrollBars
    {
        get{return isShow; }
        set{isShow=value;}
    }
    
    void IMap.AddLayer()
    {
        Console.WriteLine ("添加圖層。");
    }
    private int count=5;
    int IMap.LayerCount
    {
        get{return count;}
    }
}
class Test
{
    static void Main()//入口函數
    {
        Console.WriteLine ("\n對當前的視圖進行的操作與設定。\n");
        IActiveView pActiveView=new MapClass ();
        pActiveView.Refresh ();
        pActiveView.ShowScrollBars =true;
        if(pActiveView.ShowScrollBars )
        {
            Console.WriteLine ("顯式比例尺。");
        }
        else
        {
            Console.WriteLine ("不顯式比例尺。");
        }
        
        Console.WriteLine ("\n對地圖進行的操作與設定。\n");
        IMap pMap=new MapClass ();
        pMap.AddLayer ();
        Console.WriteLine ("當前地圖有{0}個圖層",pMap.LayerCount );
        
        //當一個類繼承自多個介面的時候,介面的作用其實就是把類中的方法或屬性進行分類,如上面的IActiveView和IMap介面就實現了不同功能
        //當然,如果同屬於一個類(IActiveView)中的其中一個介面(如IMap)想實現另外一個介面(IActiveView)中的方法或屬性,可以應用介面查詢(QI)技術,具體見我的另外一篇博文“C#.NET描述arcobjctes中的介面查詢(QI)技術”。
    }
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.