接口的作用众所周知了,而且C#的接口,必须明确两点:

1.必须实现接口中定义的方法、属性等,原型必须一样(返回值类型、函数名,参数类型)

2.实现接口的类中必须使用public修饰符

那我们下面来看一个例子:

var array = new string[10];

foreach (var tp in array.GetType().GetInterfaces())
{
    Console.WriteLine(tp.Name);
}

上面的例子取出了对象array实现的所有接口名称,我们看到有下面这些:

ICloneable
IList
ICollection
IEnumerable
IList`1
ICollection`1
IEnumerable`1

我们看到array实现了ICollection接口,我们跳到这个接口代码区看下:

[ComVisible(true)]
public interface ICollection : IEnumerable
{
    int Count { get; }
    bool IsSynchronized { get; }
    object SyncRoot { get; }
    void CopyTo(Array array, int index);
}

我们发现上面有个Count属性,这个……我们都知道string[]类型的对象是不会有Count属性的,只会有Length属性。

这样的话,其实已经违背了上面列的两条了。而且我发现在NHibernate里面也有一个这样的类,实现了IEnumerable接口,却没有提供IEnumerator GetEnumerator()的实现。

这就是我百思不得其解的地方。查了些资料,没找到合理解释,希望谁能来解释一下!

最近遇到个关于接口的奇怪的问题相关推荐

  1. Dart中抽象类 多态以及接口

    Dart中抽象类:Drat抽象类主要是用于定义标准,子类可以继承抽象类,也可以实现抽象类接口. 1.抽象类通过abstract关键字来定义 2.Drat中的抽象方法不能用abstract声明,Dart ...

  2. 如何选择短信接口平台?

    对于许多企业来说,短信接口并不奇怪,它是系统语言开发支持的总结,各种标准化的运行环境,完全解决了不同开发语言和开发环境对各个合作伙伴的需求.在服务体验变得越来越重要的时候,将短信接口嵌入到自己的系统中 ...

  3. 反病毒引擎设计全解(四)

    3.病毒实时监控 3.1实时监控概论 实时监控技术其实并非什么新技术,早在DOS编程时代就有之.只不过那时人们没有给这项技术冠以这样专业的名字而已.早期在各大专院校机房中普遍使用的硬盘写保护软件正是利 ...

  4. iis php7页面空白,iis 无法显示htm页面问题解决

    IIS连最基本的htm都访问不了的原因及解决方法:1.右键 IIS相应网站-->属性-->ISAPI筛选器,之前为了能够访问php我在这里添加了Php筛选器, 而php-cig.exe并不 ...

  5. Nvidia Jetson AGX Orin 初体验

    一.开箱 Nvidia Jetson AGX Orin是今年Nvidia推出的唯一的开发套件,相比Jetson Nano 472GFLOP算力.Jetson Xaiver 32TOPS(INT8)算力 ...

  6. SpringMVC对PathVariable的特殊字符.的处理默认是文件后缀

    作为程序狗,生命不息,bug不止.在"止"这些bug的征程上,很讨厌遇到奇奇怪怪的bug,也很开心遇到这些奇奇怪怪的bug.通过暴露的这些bug,愈挫愈勇的去掌握欠缺的某个技术点或 ...

  7. 入侵特斯拉汽车Model S 信息娱乐系统漏洞

    一直以来特斯拉被认为比其他具有网络连接功能的汽车更安全,可以作为联网汽车的楷模,尽管特斯拉时不时被爆出一些小BUG.例如,2015年8月的黑客大会DEFCON上,安全研究人员Marc Rogers和K ...

  8. flutter基础 dart语言学习笔记

    1.JIT(Just-In-Time 动态编译) 即时编译为什么能大幅度提升性能 JIT,即Just-in-time,动态(即时)编译,边运行边编译: https://book.flutterchin ...

  9. 实例演绎Unix/Linux的一切皆文件思想

    大家习惯了使用socket来编写网络程序,socket是网络编程事实上的标准. 我们知道,在Unix/Linux系统中"一切皆文件",socket也被认为是一种文件,socket被 ...

  10. 入侵特斯拉——智能汽车安全性分析

    特斯拉汽车一直受到黑客的关注,很多安全研究人员都尝试过挖掘特斯拉汽车的漏洞,主要原因是特斯拉是纯电动汽车并且有网络连接,可以通过网络对汽车进行控制,而且特斯拉本身也非常依赖电子控制系统.本文就来分析特 ...

最新文章

  1. centos下fail2ban安装与配置详解
  2. Opportunity update implementation in backend
  3. iOS基础-高级视图-UITableView--静态单元格
  4. idea jpa方法 自动提示_Spring Boot的自动配置、Commandline Runner
  5. AppList.json文件为空,主界面清缓存后加载后还正常显示
  6. itop docker3.0.0安装
  7. 【Scala】使用Scala程序实现WordCount--词频统计(代码)
  8. NYOJ-部分和问题(dfs)
  9. c语言50例题答案,100个经典c语言例题(带答案).doc
  10. 阿里巴巴JAVA开发手册资源分享
  11. java将pdf,word,excel转成图片
  12. 如何用计算机管理员权限,如何以管理员身份运行电脑?急
  13. 嵌入式软件工程师笔试面试指南目录
  14. android获得cache路径,android取得当前程序File与Cache路径!
  15. No.118 Pascal's Triangle ||
  16. 如何写.bat批处理文件
  17. c语音,求两个数中的最大值
  18. CUDA安装失败(已解决)
  19. C语言 航班售票系统/航班管理系统
  20. 《“透视”个人大数据》项目开发小记 --(二)网络服务端,邮箱验证和手机验证(C#,Java)

热门文章

  1. java案例代码2-素数判断测试
  2. 帆软Tab控件与控制组件隐藏的异同点
  3. linux应用程序固件升级,试试用 Linux 中的 fwupd 更新 ThinkPad 固件
  4. 字符集_一文搞清楚unicode字符集的三种实现方式
  5. link和@import区别
  6. The Application of Stack in Expression Calculation
  7. 打造轻量级的实体类数据容器
  8. C#交错数组与多维数组区别
  9. Mobileye单目测距
  10. Kinetics-400数据集介绍