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)技术”。
}
}
/*
* 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)技术”。
}
}
相关文章推荐
- C#.NET描述arcobjects中的接口、类的关系2
- C#.NET描述arcobjects中的接口查询(QI)技术
- C#关于类抽象类和接口之间的关系(Abstract)(Interface)
- 支付宝Payto接口的c#.net实现
- 小菜的ArcObjects学习之路------C#中接口的转换
- C#/.NET主线程与子线程之间的关系
- C# ORM中的继承关系映射全解-接口映射、单表继承体系等
- 如何使用C#或者VB.NET读写Access数据库的标题(Caption)、描述(Description)等字段信息?
- 【C#.NET】C#中抽象类和接口的区别
- net/c# 微信企业号 userid转换成openid接口
- C#.NET里面抽象类和接口有什么区别?
- 支付宝Payto接口的c#.net实现
- C#学习小记(1) - 集合接口ICollection,IEnumerable,IEnumerator等的关系
- 支付宝Payto接口的c#.net实现
- 基于工作实际需求的Ext.Net和C#搭配应用之一 取出网域(AD)中所有计算机名及位置描述等信息
- 转-支付宝Payto接口的c#.net实现
- 支付宝Payto接口的c#.net实现 (一)
- asp.net C# 实现微信接口权限开发类
- [.net].net&vs&c#&asp.net历届版本对应关系
- 关于.NET、ASP.NET、C#、WinFrom、MVC以及WebForm的简单描述