您的位置:首页 > 移动开发 > Objective-C

C#.NET描述arcobjects中的接口、类的关系

2009-08-19 11:48 681 查看
要理解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)技术”。

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: