当前位置:首页 > 日记 > 正文

C#界面基础教程四

C#界面基础教程四
第四节,访问接口

访问接口成员

对于接口方法的调用,通过指标的访问规则是为那些在同一类。如果基础构件的命名是从遗传水平高的成员一样,底层成员将覆盖同名的前成员。然而,由于接口支持多遗传,如果父母两接口包含多重继承的同名成员,它产生的两种含义。这是原因之一,#取消C类的多重继承机制。在那个时候,需要明确的定义。
Using System;
接口isequence {
int计数{;get;set;}
}
接口应{
空值(int I);
}
接口iringsequence:isequence,iRing { }
类C {
空白试验(iringsequence RS){
/ / rs.count(1);误差、计数有两层含义
/ / rs.count = 1;误差、计数有两层含义
((isequence)RS)。数= 1; / /正确
((物)RS)。计数(1); / /正确调用计数触发。
}
}

在上面的例子中,第一个陈述,RS. Count(1)和RS数= 1,产生两个歧义,导致编译时错误,所以我们必须显式地指定父接口类型的RS,它不在运行时带来的额外成本。

请看下面的例子。

使用系统;
界面整周{
添加空(int I);
}
接口双{
添加空(双D);
}
接口索引编号:IInteger,双{ }
类cmytest {
空白试验(索引编号num){
/ /数加(1)错误;
数增加(1); / /正确
((整周)n),加(1); / /正确
((双)n),加(1); / /正确
}
}

调用数增加(1)使两意义因为候选重载方法的参数类型都是适用的。然而,呼叫数增加(1)是允许的,因为1是浮点数的参数类型和参数类型不一致的方法整周。加(),所以只有双加是。适用。但只要添加显式分配,不会有两个意义。

接口的多重继承问题也会带来成员访问的问题:

接口IBASE {
Void FWay(int i);
}
接口离开:IBase {
新的空隙fway(int i);
}
界面对:IBase
{无效G();}
接口iderived:离开,对{ }
类C {
空白试验(iderived D){
D. FWay(1); / /叫我离开。fway
((IBase)D)。fway(1); / /呼叫IBASE。fway
((我)D)。fway(1); / /叫我离开。fway
((对)D)。fway(1); / /呼叫IBASE。fway
}
}

在本例中,该方法是在我离开ibase.fway导出接口的fway离开覆盖方法的成员。所以叫d. FWay(1)实际上叫。虽然从继承路径IBASE -> -> iderived对的方法,ileft.fway不是盖的。我们必须记住这一次的成员都包括在内,所有的成员已覆盖拦截。

类到接口的实现

正如我们之前所说的,接口定义不包括方法的实现部分,接口可以通过类或结构实现。我们主要描述的接口实现类。当一个接口是一个类实现的接口的名称,必须包括在基类列表中类的定义。

下面的例子给出了由class.isequence接口实现的一个例子是一个队列接口。它提供了将对象添加到队列末端的成员方法。添加(),IRing是一个圆形的表界面。它提供了一种方法来插入对象插入到环(对象)。该方法返回插入的位置,ringsquence类实现的接口和界面的isequence物。

使用系统;
接口isequence {
对象添加();
}
接口isequence {
对象添加();
}
接口应{
插入(对象);
}
类ringsequence:isequence,IRing
{
公共对象添加(){…}
公开插入(对象){…}
}

如果一个类实现了一个接口,那么类将隐式地继承接口的所有父接口,而不管这些父接口是否在类定义的基类表中列出:

使用系统;
Interface IControl {
虚空漆();
}
接口itextbox:IControl {
无效的setText(文本);
}
接口ilistbox:IControl {
无效setItems(字符串{ }项目);
}
接口icombobox:itextbox,ilistbox { }

在这里,icombobox itextbox接口继承和ilistbox。文本框类不仅实现了界面itextbox,而且实现了接口的itextbox父接口控制。

正如我们前面看到的,一个类可以实现多个接口。

接口idatabound {
空绑定(宾德b);
}
公共类的编辑框:控制,IControl,idatabound {
公共空白漆();
公共空绑定(宾德b){…}
}

类的编辑框是从该类派生的控制和实施控制和idatabound。在前面的例子中,涂料的方法在界面控制和在idatabound接口绑定的方法是在类的普通成员编辑框实现。C #提供了另一种实现这些方法,这些类可以实现避免设置这些成员以公开的方式,接口成员可以有效的名称来实现。例如,编辑框可以转换为控制。油漆和idatabound绑定来实现。

公共类的编辑框:IControl,idatabound {
无效的iControl。漆(){…}
idatabound绑定无效。(宾德B){…}
}

因为每个成员是通过外部分配的接口成员的成员实施实施,这种方式称为外部接口成员。外部接口成员只能通过接口调用。例如,在涂料的方法编辑框的实现只能由创建的iControl接口调用。

类测试{
静态空主(){
编辑框编辑框=新的编辑框();
编辑框。漆(编辑框); / /错误:没有油漆的事件
控制控制=编辑框;
(控制。漆); / /呼叫editbox Paint事件
}
}

在这个例子中,编辑框类继承的控件类实现了接口和控制idatabound。在编辑框油漆方法来自iControl接口和绑定的方法来自idatabound接口,和两者在编辑框类的公有成员实施。当然,在C #,我们也可以选择不实现接口作为一个公共成员。

如果每个成员清楚地指出已实现的接口,通过这种方式实现的接口称为显式接口成员:

公共类的编辑框:IControl,idatabound {
无效的iControl。漆(){…}
idatabound绑定无效。(宾德B){…}
}

只能通过接口调用显式接口成员:

类C {
静态空主(){
编辑框编辑框=新的编辑框();
(编辑框。漆); / /错误:不同的方法
控制控制=编辑框;
控制。油漆(涂料); / /叫EditBox法
}
}

打电话给编辑框。漆()在上面的代码是错误的,因为编辑框本身并不提供这method.control.paint()是调用正确的方法。

注意:接口本身不提供定义成员的实现,它只指示这些成员。这些成员必须依赖接口或其他接口。

知道如何访问接口,我们也知道如何实现接口来实现C #接口,见下一节-实现接口

相关文章

新的CorelDRAW图形套件将在市场

新的CorelDRAW图形套件将在市场

图形,市场,套件,将在,电脑软件,公布前一天的Corel,CorelDRAW图形图形套件12套即将在2004年2月推出的最新版本!CorelDRAW图形套件12将带来一系列令人兴奋的新的智能工具,帮助专业图形用户和企业用户以更快的速度完成设计任务。 CorelDRAW图形…

Gates和她的妻子和孩子明天将参加

Gates和她的妻子和孩子明天将参加

奥林匹克运动会,开幕式,妻子,明天,孩子,Gates先生和夫人(数据图片) 新浪科技讯8月7日,知情人士说,刚刚退休的比尔·盖茨将和他的妻子梅林达和他的孩子们一起抵达北京。他们将参加明天的奥运会开幕式,Gates计划观看战斗现场乒乓球比赛,新浪科技也…

微软表示,中国90%XP用户无法升级到I

微软表示,中国90%XP用户无法升级到I

用户,中国,升级到,电脑软件,XP,昨日,微软公司发布的浏览器在中国,新一代的正式版IE9浏览器。微软表示,新一代的比IE8快11倍,但不支持XP操作系统。据介绍,微软IE9只支持Windows Vista和Windows 7系统。从CNZZ显示,国内XP系统的市场份额接近90%的数…

新浪朗玛联手打造第一网络歌手大赛

新浪朗玛联手打造第一网络歌手大赛

网络,新浪,歌手大赛,朗玛,电脑软件,Sina和朗玛今天正式宣布,新浪UC杯首届中国网络通俗歌手大赛盛大启幕!Sina为代表的网络媒体,新闻传播具有最广泛的全球华人网民和最优秀的,并成为世界上第一个朗玛UC互动娱乐平台与立体的聊天室,有最先进的语音…

微软正在为新一代宽带服务投入40万

微软正在为新一代宽带服务投入40万

宽带,服务,新一代,电脑软件,万美元,3月29日,据国外媒体报道,微软澳大利亚分公司计划斥资40万美元与澳大利亚墨尔本大学合作研究宽带业务。 据悉,新一代宽带投资项目将包括在澳大利亚墨尔本大学协会(IBES)宽带产业合作计划,将用于帮助新的网络设…

温家宝:抑制投机性购房促进房地产业

温家宝:抑制投机性购房促进房地产业

抑制,温家宝,健康发展,投机性,电脑软件,从11月28日至第二十九日,对温家宝和中国共产党中央政治局常委、国务院总理访问上海和江苏。这是11月29日,温家宝在南京工业大学学习,学生提出了奖牌,他的徽章。新华新闻社记者饶爱敏 从11月28日至第二十…

Kabasijiwolf,牛牛桌面报警

Kabasijiwolf,牛牛桌面报警

桌面,牛牛,电脑软件,Kabasijiwolf,官方数据显示,卡巴斯基发布的2版本的官方版本被错误地报告为病毒,并终止了直接删除的程序,这种行为严重影响了奶牛桌面管理的主用户的权威。 如下: 图1用于卡巴斯基检测奶牛桌面病毒 图2卡巴斯基终止了一个…

美国上市公司的年利润率排在百度之

美国上市公司的年利润率排在百度之

上市公司,百度,美国,排在,年利润,据国外媒体报道,在过去的10年里,中国10强企业排名在美国,巨人网络最赚钱的,百度和三号互联网公司。 下面是排名的例子: 1、鸿利煤焦(纳斯达克股票代码:SCOK)是最有利可图的中国在美国上市的公司在过去的一年。过…

随着品牌的变化,办公室的作用也会随

随着品牌的变化,办公室的作用也会随

作用,也会,办公室,品牌,电脑软件,当微软公司试图重新定位其办公室以建立定制化解决方案的基础时,它宣布了在3月10日以Office系统作为品牌来推广Office的计划。 微软公司还发布了Office 2003 Beta 2,给大约50万名测试人员和企业。它把软件发…

联合部三家运营商压制手机病毒群

联合部三家运营商压制手机病毒群

手机病毒,运营商,三家,电脑软件,在央视3晚会曝光15网秦飞流下载软件双簧、共同欺骗消费者谋取非法利益背后的黑色,记者昨天获悉,一批会议360、上升、金山、中国移动、中国联通、中国电信、阿里巴巴、腾讯等企业,工信部,专注于针对日益猖獗的病…

微软新的Windows操作系统Longhorn

微软新的Windows操作系统Longhorn

冰山,操作系统,电脑软件,Windows,Longhorn,路透社,西雅图时间5月18日(北京时间5月19日)。虽然最新的Windows操作系统XP上市仅20个月,微软已经开始开发新的操作系统Longhorn,它计划出售2005。微软表示,随着PC变得更加强大,速度更快,在未来几年更容易…

1017群购物网停止运营

1017群购物网停止运营

购物网,电脑软件,昨天,独立团购导航网站800近日发布的2011年10月中国团购市场统计报告》数据显示:首次负增长团购网站总数,十月仅新增16家团购网站,因页面无法访问、停止更新产品的原因,如业务转型是团购网站停运1017个。总数下降到4057人。 同…