C#面试随笔

本文深入探讨了接口中抽象方法的特点,如修饰符限制、实现方式(显式与隐式),以及接口与类在实现过程中的注意事项。同时,详细解析了索引器的定义、修饰符使用、数据类型选择及其实现细节,对比了接口索引器与类索引器的区别。

1、接口中抽象方法不能有任何修饰符,只有返回值、接口名和参数组成。所以不能用public、private、static等修饰.
2、接口方法有两种实现方式,显式和隐式。
  假如有接口如下
  Interface IFace
  {
    int Add(int a,int b);
  }
  a)隐式实现
  public int Add(int a,int b)
  {
    return a+b;
  }
  隐式实现方法只能是public,且不能用static修饰,即接口方法不能是静态的.
  b)显式实现
  int IFace.Add(int a,int b)
  {
    return a+b;
  }
  显示实现的方法是private类型,但是又不能用private、public、static等修饰
3、实现接口的类或结构要与接口的定义严格一致。接口描述可属于任何类或结构的一组相关行为。接口可由方法、属性、事件、索引器或这4种成员类型的任何组合构成。接口不能包含字段。接口成员一定是公共的。
4、索引器
[修饰符] 数据类型 this[索引类型 index]
{
    get{//获得属性的代码}                                                 
    set{ //设置属性的代码}
}
修饰符包括 public,protected,private,internal,new,virtual,sealed,override, abstract,extern.
数据类型是表示将要存取的数组或集合元素的类型。
索引器类型表示该索引器使用哪一类型的索引来存取数组或集合元素,可以是整数,可以是字符串;this表示操作本对象的数组或集合成员,可以简单把它理解成索引器的名字,因此索引器不能具有用户定义的名称
5、在接口中也可以声明索引器,接口索引器与类索引器的区别有两个:一是接口索引器不使用修饰符;二是接口索引器只包含访问器getset,没有实现语句。访问器的用途是指示索引器是可读写、只读还是只写的,如果是可读写的,访问器getset均不能省略;如果只读的,省略set访问器;如果是只写的,省略get访问器。
6、索引器与属性都是类的成员,语法上非常相似。索引器一般用在自定义的集合类中
参考自:http://blog.youkuaiyun.com/lxf544207706/article/details/6510119   http://www.cnblogs.com/zhangzheny/archive/2007/12/24/1012790.html
7、接口中只能包括方法,属性,索引器,事件,且都默认被定义为public,但在实现类中显式实现时,是private类型,接口中成员都不能是static类型,所以在实现时,也不能是static,虽然方法、属性、事件在类中定义时可以定义成static类型,但是如果是从接口中继承实现的方法、属性、事件,不能用static修饰。

转载于:https://www.cnblogs.com/liancs/p/3187976.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值