当前位置: 首页 > news >正文

肥乡网站建设/营销战略有哪些内容

肥乡网站建设,营销战略有哪些内容,做五金生意什么网站做比较好,温州网站制作方案第十三章 接口 2013-02-27 13.5 隐式和显示接口方法实现 1. 隐式接口的实现 2. 显示接口的实现13.8 实现多个具有相同方法名和签名的接口13.9 用显示接口类型方法实现来增强编译时类型安全 ToDo: 什么时候使用接口和什么时候使用类 13.5 隐式和显示接口方法实现 返回 &#x…

第十三章 接口

2013-02-27

13.5 隐式和显示接口方法实现
  1. 隐式接口的实现
  2. 显示接口的实现
13.8 实现多个具有相同方法名和签名的接口
13.9 用显示接口类型方法实现来增强编译时类型安全

 

ToDo: 什么时候使用接口和什么时候使用类

 

13.5 隐式和显示接口方法实现


返回

?显式接口和隐式接口的关系

 

1.隐式接口的实现

 1     class SimpleType : IDisposable
 2     {
 3         public void Dispose() { Console.WriteLine("Dispose"); }
 4     }
 5 
 6     class Program
 7     {
 8         static void Main(string[] args)
 9         {
10             SimpleType st = new SimpleType();
11             //调用公共Dispose方法
12             st.Dispose();
13             //调用IDisposable的Dispose方法
14             IDisposable d = st;
15             d.Dispose();
16         }
17     }

上面调用的是同一个方法,输出都是:Dispose

2. 显示接口的实现

1     class SimpleType : IDisposable
2     {
3         public void Dispose() { Console.WriteLine("public Dispose"); }
4         //显式调用
5         void IDisposable.Dispose() { Console.WriteLine("IDisposable.Dispose"); }
6     }

输出结果:

public Dispose

IDisposable.Dispose

注意:在C#定义一个显示接口方法是,不允许定义可访问性,编译器会设置其访问性为private。要调用它,只能通过接口类型的一个变量来进行。

13.8 实现多个具有相同方法名和签名的接口


返回 

有两个接口具有相同方法名和签名的方法,必须用“显示接口的方法实现”。

1     interface IWindow { object GetMenu();}
2     interface IRestaurant { object GetMenu();}
3     class Mario : IWindow, IRestaurant
4     {
5         object IWindow.GetMenu() { return null; }
6         object IRestaurant.GetMenu() { return null; }
7     }

13.9 用显示接口类型方法实现来增强编译时类型安全


返回 

如何接口的方法接受System.Object类型的参数或返回值时,就会丧失编译时的类型安全性,装箱也会发生,看如下代码:

 1     struct SomeValueType : IComparable
 2     {
 3         private int _x;
 4         public SomeValueType(int x) { _x = x; }
 5         public int CompareTo(Object other)
 6         { return (_x - ((SomeValueType)other)._x); }
 7     }
 8 
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             SomeValueType v = new SomeValueType(0);
14             object o = new object();
15             int n = v.CompareTo(v); //非预期装箱
16             n = v.CompareTo(o);   //InvalidCastException异常
17         }
18     }

可做如下改动避免以上错误:

 1     struct SomeValueType : IComparable
 2     {
 3         private int _x;
 4         public SomeValueType(int x) { _x = x; }
 5         public int CompareTo(SomeValueType other) //修改参数类型
 6         { return (_x - other._x); }
 7         int IComparable.CompareTo(Object other) //添加显示接口方法实现
 8         { return CompareTo((SomeValueType)other); }
 9     }
10 
11     class Program
12     {
13         static void Main(string[] args)
14         {
15             SomeValueType v = new SomeValueType(0);
16             object o = new object();
17             int n = v.CompareTo(v); //没有装箱操作
18             n = v.CompareTo(o);   //编译时就会报错
19         }
20     }

但如果定义一个接口类型变量还是会报错,看如下代码:

 1     class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             SomeValueType v = new SomeValueType(0);
 6             IComparable c = v;   //装箱
 7             object o = new object();
 8             int n = c.CompareTo(v); //非预期装箱
 9             n = c.CompareTo(o);    // InvalidCastException异常
10         }
11     }

 

转载于:https://www.cnblogs.com/Ming8006/archive/2013/02/27/2934817.html

http://www.lbrq.cn/news/1463275.html

相关文章:

  • 青岛网站设计建设/电商平台开发
  • 看广告的收益的app/seo优化与推广招聘
  • wordpress要求配置/好的seo平台
  • 网站建设功能报价单/网络营销推广与策划
  • 有关做聚合物电池公司的网站/百度网盘官方下载
  • 经营性网站备案要求/南京网站制作设计
  • 在网站写小说怎么做封面/重庆seo顾问
  • 建站快车金牌代理商/网站怎么开发
  • 私人网站服务器搭建/浏览器谷歌手机版下载
  • 销售型企业有哪些公司/国外网站seo
  • 全球做网站的公司排名/谷歌chrome官网
  • 重庆网站建设师/seo提升排名
  • 大型建设网站制作/网店seo是什么意思
  • 国外网站国内做好还是国外做/免费的网页入口
  • 做的网站怎样适配手机屏幕/指数基金怎么选
  • 初学者的网站建设/如何推广网上国网
  • easyui 做网站/郑州seo优化外包
  • 哪些网站是python做的/域名解析ip138在线查询
  • 建筑工程发布网站/培训学校招生营销方案
  • 天津和平做网站多少钱/软文写作是什么
  • 学做ppt的网站 免费/搜狗搜索引擎入口
  • 最便宜服装网站建设/行业关键词搜索量排名
  • 廊坊建设企业网站/电子商务网站建设多少钱
  • 国外设计网站排名/长沙网站优化方案
  • 长沙做网站的公司对比/网站服务器软件
  • p2p网站开发的流程图/中国国际新闻
  • 域名指向国外服务器做网站/安卓aso优化工具
  • 网站模板库软件/正规seo关键词排名哪家专业
  • wordpress火车头采集器/上海优质网站seo有哪些
  • 网站代理怎么做的/源码之家
  • 2106. 摘水果
  • 集成电路学习:什么是USB HID人机接口设备
  • pytorch的 Size[3] 和 Size[3,1] 区别
  • 在 AKS 中运行 Azure DevOps 私有代理-1
  • Pycaita二次开发基础代码解析:几何体重命名与参数提取技术
  • grafana/lock-stack 日志 Pipeline 配置