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. ...
随机推荐
- SoapUI5.1.2安装和破解教程
一.SoapUI简介 soapui提供一个工具通过soap/http来检查,调用,实现web service和web service的功能/负载/符合性测试. 该工具既可作为一个桌面应用软件使用,也可 ...
- Nodejs-- web服务器
第一篇关于nodejs的东西,代码在此作为备份. 该代码目前未完成,是一个阻塞式的代码. 1.index.js ar server=require('./server'); var route=req ...
- Spring Boot 应用系列 2 -- Spring Boot 2 整合MyBatis和Druid
本系列将分别演示单数据源和多数据源的配置和应用,本文先演示单数据源(MySQL)的配置. 1. pom.xml文件配置 需要在dependencies节点添加: <!-- MySQL --> ...
- .Net Core WebApi返回的json数据,自定义日期格式
基本上所有的人都在DateTime类型的字段,被序列化成json的时候,遇到过可恨的Date(1294499956278+0800):但是又苦于不能全局格式化设置,比较难受.以往的方式,要么使用全局的 ...
- (C#)计算1-2+3-4+.....+m
方法一: public static int Sum(int m) { int sum = 0; bool bol = true; for (int i=1;i<=m;i++) { if (bo ...
- 使用chosen插件实现多级联动和置位
使用chosen插件实现多级联动和置位 首先写好第一个select,加上onchage属性之后,写onchange方法. <select data-placeholder="选择省份. ...
- 关于jdbc编程的几点需要注意的地方
代码 private void logDataDb(ArrayList<ReceiveData> datas) { Connection conn = null; PreparedStat ...
- C++的访问关系
1.C++的访问关系
- 学习《精通数据科学从线性回归到深度学习》PDF+代码分析
数据科学内容广泛,涉及到统计分析.机器学习以及计算机科学三方面的知识和技能.学习数据科学,推荐学习<精通数据科学从线性回归到深度学习>. 针对技术书籍,最好的阅读方法是对照每一章的示例代码 ...
- 用layui遇到过的问题
1.报错“layui.form is not a function”问题 把代码中这一串修改一下:form = layui.form(); 括号去掉就行: form = layui.form; 如果你 ...