C# 接口用法
一、接口定义
接口是指一组函数成员而不实现它们的引用类型,只能由类和结构来是实现,接口的作用就不阐述了
二、声明接口
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# 接口用法的更多相关文章
- (实用篇)php支付宝接口用法分析
本文实例讲述了php支付宝接口用法.分享给大家供大家参考.具体分析如下: 现在流行的网站支持平台,支付宝当仁不让的老大了,现在我们就来告诉你如何使用支付宝api来做第三方支付,把支付宝放到自己网站来, ...
- php新浪微博登录接口用法实例
本文实例讲述了php新浪微博登录接口用法.分享给大家供大家参考.具体分析如下: 在做微博登陆之前是需要申请到APP KEY 和App Secret,这个的申请方式请去 open.weibo.com 申 ...
- Java语言Socket接口用法详解
Socket接口用法详解 在Java中,基于TCP协议实现网络通信的类有两个,在客户端的Socket类和在服务器端的ServerSocket类,ServerSocket类的功能是建立一个Serve ...
- Android中Parcelable与Serializable接口用法
转自: Android中Parcelable接口用法 1. Parcelable接口 Interface for classes whose instances can be written to a ...
- JS版微信6.0分享接口用法分析
本文实例讲述了JS版微信6.0分享接口用法.分享给大家供大家参考,具体如下: 为了净化网络,整顿诱导分享及诱导关注行为,微信于2014年12月30日发布了<微信公众平台关于整顿诱导分享及诱导关注 ...
- Android中Parcelable接口用法
from: http://www.cnblogs.com/renqingping/archive/2012/10/25/Parcelable.html Interface for classes wh ...
- jmeter的简单http接口用法
1. jmeter的启动:windows下的环境 进入jmeter的并目录双击启动 Mac电脑 进入bin目录找到jmeter.sh 文件 在终端执行./jmeter.sh 或者./jmeter. ...
- (转)Android中Parcelable接口用法
1. Parcelable接口 Interface for classes whose instances can be written to and restored from a Parcel. ...
- Iterator接口用法
1.所有实现Collection接口的容器类都有一个iteractor方法,用于返回一个实现了Iteractor接口的对象, 2.Iteractor对象成为迭代器,用以实现对容器内元素的遍历操作 3. ...
随机推荐
- Source Multiplayer Networking【转】
https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking Multiplayer games based on th ...
- asp.net core 使用identityServer4的密码模式来进行身份认证(一)
IdentityServer4是ASP.NET Core的一个包含OpenID和OAuth 2.0协议的框架.具体Oauth 2.0和openId请百度. 前言本博文适用于前后端分离或者为移动产品来后 ...
- ASP.NET Core 2 学习笔记(七)路由
ASP.NET Core通过路由(Routing)设定,将定义的URL规则找到相对应行为:当使用者Request的URL满足特定规则条件时,则自动对应到相符合的行为处理.从ASP.NET就已经存在的架 ...
- 构建NetCore应用框架之实战篇(四):BitAdminCore框架1.0登录功能细化及技术选型
本篇承接上篇内容,如果你不小心点击进来,建议从第一篇开始完整阅读,文章内容继承性连贯性. 构建NetCore应用框架之实战篇系列 一.BitAdminCore框架1.0版本 1.1.0版本是指最小版本 ...
- zoj4020 Traffic Light(bfs+状态压缩)
题意:每个点有两种状态,0/1,0表示只能上下方向走,1表示只能左右方向走.每走一步整个图的状态改变一次(即0->1,1->0). 数据范围:n,m<=1e15 开始迷之因为数组太大 ...
- Flask从入门到精通之自定义错误界面
如果你在浏览器的地址栏中输入了不可用的路由,那么会显示一个状态码为404 的错误页面.现在这个错误页面太简陋.平庸,而且样式和使用了Bootstrap 的页面不一致. 像常规路由一样,Flask 允许 ...
- zookeeper集群环境搭建详细图文教程
zookeeper集群环境搭建详细图文教程 zhoubang @ 2018-01-02 [文档大纲] 友情介绍 软件环境 注意点 环境安装 1. 新建用于存储安装包以及软件安装的目录 2. 下载安装z ...
- 怎样使用Navicat Premium导出导入mysql数据库
首先,在Navicat Premium中连接要导出数据库的mysql数据库. 2 1.填写好连接数据库的信息后就可以连接到需要导出的数据库了. 3 打开要导出的数据库. 4 将数据库的结构和数据导出为 ...
- struts+spring+hibernate两张表字段名一样处理方法
在利用struts2+spring+hibernate(利用Hibernate进行分页查询)三大框架进行开发项目的时候,出现一个问题:居然要进行关联查询的十几张表中有两张表的字段一样,并且这两张表中的 ...
- JSP知识汇总
JSP知识汇总 一.简介 > HTML - HTML擅长显示一个静态的网页,但是不能调用Java程序. > Servlet - Servlet擅长调用Java程序和后台进行交互,但是它不擅 ...