一、接口定义

  接口是指一组函数成员而不实现它们的引用类型,只能由类和结构来是实现,接口的作用就不阐述了

二、声明接口

interface IMyInterface  //interface 是关键字,后面的是接口名称
{
int DoSomething(int val1, int val2); //分号代表实现主体,不能含有public等修饰符,默认为public
}

  下面是一些注意事项:

    a:接口声明不能包括静态成员和数据成员,只能包含非静态成员方法、时间、属性、索引器

    b:函数成员的声明不能有任何实现代码,并且在每个声明的主体后使用分号分隔

    c:   接口成员可以使用public、private等修饰符,而接口成员是隐式public,不允许有任何访问修饰符,包括public

    d:按照惯例,接口名称从大写的 I 开始,如 ITest

    e:如果类从基类继承并使用了接口,基类必须放在接口之前(只能有一个基类,接口可以有多个)

    f:接口可以继承接口

三、接口和as运算符

IMyInter b = c as IMyInter;
if(b != null)
Console.WriteLine("Not null");

代码先使用as运算符从类对象获取接口引用,并赋值给b,使b的值为null 或 IMyInter,判断是否为null

四、实现具有重复成员的接口

  由于类可以实现任意数量的接口,因此可能有多个接口成员有相同的签名和返回类型,例如:

interface IMyInter1
{
void Print(string a);
} interface IMyInter2
{
void Print(string b);
}

对于上面的例子,有两种解决方法

  1、实现单个成员来满足所有包含重复成员的接口

class MyClass : IMyInter1, IMyInter2
{
public void Print(sting s)
{
Console.WriteLine("value is {0}",s);
}
}

  2.创建显式接口成员实现,由接口名称加点号分隔符和成员名称组成

class MyClass : IMyInter1, IMyInter2
{
public void IMyInter1.Print(sting s)
{
Console.WriteLine("IMyInter1 value is {0}",s);
} public void IMyInter2.Print(sting s)
{
Console.WriteLine("IMyInter2 value is {0}",s);
}
}

C# 接口用法的更多相关文章

  1. (实用篇)php支付宝接口用法分析

    本文实例讲述了php支付宝接口用法.分享给大家供大家参考.具体分析如下: 现在流行的网站支持平台,支付宝当仁不让的老大了,现在我们就来告诉你如何使用支付宝api来做第三方支付,把支付宝放到自己网站来, ...

  2. php新浪微博登录接口用法实例

    本文实例讲述了php新浪微博登录接口用法.分享给大家供大家参考.具体分析如下: 在做微博登陆之前是需要申请到APP KEY 和App Secret,这个的申请方式请去 open.weibo.com 申 ...

  3. Java语言Socket接口用法详解

    Socket接口用法详解   在Java中,基于TCP协议实现网络通信的类有两个,在客户端的Socket类和在服务器端的ServerSocket类,ServerSocket类的功能是建立一个Serve ...

  4. Android中Parcelable与Serializable接口用法

    转自: Android中Parcelable接口用法 1. Parcelable接口 Interface for classes whose instances can be written to a ...

  5. JS版微信6.0分享接口用法分析

    本文实例讲述了JS版微信6.0分享接口用法.分享给大家供大家参考,具体如下: 为了净化网络,整顿诱导分享及诱导关注行为,微信于2014年12月30日发布了<微信公众平台关于整顿诱导分享及诱导关注 ...

  6. Android中Parcelable接口用法

    from: http://www.cnblogs.com/renqingping/archive/2012/10/25/Parcelable.html Interface for classes wh ...

  7. jmeter的简单http接口用法

    1.  jmeter的启动:windows下的环境 进入jmeter的并目录双击启动 Mac电脑 进入bin目录找到jmeter.sh 文件 在终端执行./jmeter.sh 或者./jmeter. ...

  8. (转)Android中Parcelable接口用法

    1. Parcelable接口 Interface for classes whose instances can be written to and restored from a Parcel. ...

  9. Iterator接口用法

    1.所有实现Collection接口的容器类都有一个iteractor方法,用于返回一个实现了Iteractor接口的对象, 2.Iteractor对象成为迭代器,用以实现对容器内元素的遍历操作 3. ...

随机推荐

  1. 使用sos查看.NET对象内存布局

    前面我们图解了.NET里各种对象的内存布局,我们再来从调试器和clr源码的角度来看一下对象的内存布局.我写了一个测试程序来加深对.net对象内存布局的了解: using System; using S ...

  2. Elasticsearch 核心插件Kibana 本地文件包含漏洞分析(CVE-2018-17246)

    不久前Elasticsearch发布了最新安全公告, Elasticsearch Kibana 6.4.3之前版本和5.6.13之前版本中的Console插件存在严重的本地文件包含漏洞可导致拒绝服务攻 ...

  3. .Net Core 自定义配置源从配置中心读取配置

    配置,几乎所有的应用程序都离不开它..Net Framework时代我们使用App.config.Web.config,到了.Net Core的时代我们使用appsettings.json,这些我们再 ...

  4. 记录FormsAuthentication的使用方法

    配置,配置mode="Forms",其他属性详见 MSDN(点我直接查看各authentication属性) . <configuration> <system. ...

  5. 使用Commons Email发送邮件

    Commons Email是apache commons库中的一个组件,对java mail做了一些个封装,提供能为简化的API供开发者使用.它依赖于javax.mail . 首先下载commons- ...

  6. 201621123018《Java程序设计》第2周学习报告

    Week02-Java基本语法与类库 1.本周学习总结 Java数据类型分为基本数据类型和引用数据类型.布尔型是Java特有的数据类型.本周重点学习了字符串类型String,String类型中==和e ...

  7. leetcode 120. 三角形最小路径和 JAVA

    题目: 给定一个三角形,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上. 例如,给定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] 自顶向下的最小路径和 ...

  8. 879. Profitable Schemes

    There are G people in a gang, and a list of various crimes they could commit. The i-th crime generat ...

  9. 内置装饰器二:@property

    property 装饰器的作用 property 装饰器将方法包装成属性,将私有属性公有化,此属性只能被读取.相当于实现get方法的对象 class People: def __init__(self ...

  10. jzoj5806

    我們發現,如果有奇環顯然無解,因為我們每一次合併一個奇環,一定會產生一個偶環和一個更小的奇環,最終會形成一個三元環而無法合併 所以,這個圖需要是一個二分圖,需要進行二染色 然後把這個圖所有的偶環找出來 ...