栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

鸭子在C#编译器中键入

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

鸭子在C#编译器中键入

没有什么特别之处

IDisposable
这里-但有 什么特别的迭代器。

C#2,使用这种类型的鸭子之前

foreach
为你可以实现一个强类型的迭代器,并遍历值类型,而拳击的唯一途径。我 怀疑
如果C#和.NET都具有泛型,
foreach
那么就 需要 使用泛型
IEnumerable<T>
,而没有鸭子类型。

现在,编译器在其他几个我可以想到的地方使用了这种鸭子输入:

  • 集合初始化器寻找合适的
    Add
    重载(以及必须实现的类型
    IEnumerable
    ,只是为了表明它确实是某种类型的集合);这允许灵活地添加单个项目,键/值对等
  • LINQ(
    Select
    等)-这是LINQ实现其灵活性的方式,允许针对多种类型使用相同的查询表达式格式,而无需更改
    IEnumerable<T>
    自身
  • C#5等待表达式需要
    GetAwaiter
    返回一个具有
    IsCompleted
    /
    OnCompleted
    / 的等待类型
    GetResult

在这两种情况下,这都使得将功能添加到现有类型和接口上变得更加容易,而以前的概念和概念并不存在。

鉴于

IDisposable
自第一个版本以来该框架就已经存在,因此我认为使用鸭子输入
using
语句不会有任何好处。我知道您明确尝试取消讨论中
Dispose
没有执行的原因
IDisposable
,但是我认为这很关键。有充分的理由在语言中实现功能,我认为鸭子类型是支持已知接口的重要功能。如果这样做没有明显的好处,那么它就不会以该语言出现。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/432941.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号