【问题标题】:what are the most used interfaces in C#? [closed]C#中最常用的接口是什么? [关闭]
【发布时间】:2010-11-21 21:23:36
【问题描述】:

我尝试搜索 C# 中最常用的内置接口,但找不到文章,所以我想我们可以在这里回顾一下。

让我们在答案中使用以下约定:

IinterfaceName1:为此

IinterfaceName2:为此

【问题讨论】:

  • 50 点指向首先编写脚本的人,例如搜索 github 上的所有 C# 代码并提供有关最常用接口的统计信息。 :)
  • 在您的机器上:可能是 ICorDebug。我猜这不是你要求的:)
  • @ivo:你错了;他是对的。
  • @ivo 其实没那么重要。
  • 为什么要关闭?显然有些接口比其他接口使用得更多,突出显示常用接口对框架新手很有帮助...

标签: c# interface


【解决方案1】:

我心目中的前两个必须是有语言支持的:

  • IEnumerable<T>(和IEnumerable):为 与foreach 和 LINQ 一起使用
  • IDisposable: 资源需要 清理,与using 一起使用

除此之外……

  • IComparable<T>IComparer<T>:用于广义排序
  • IEquatable<T>IEqualityComparer<T>:用于广义相等
  • IList<T>ICollection<T>:用于可变集合
  • IDictionary<T,K>: 用于查找集合

【讨论】:

  • 同意以上所有,只会在WinForms中添加IBindingList & INotifyPropertyChanged进行数据绑定
  • 不像集合接口那么常见,但ISerializable 也很重要。
  • @CodeInChaos meh;只有BinaryFormatter 真正使用它,而BinaryFormatter 有一个整个范围 的东西使它不受欢迎。像XmlSerializer、json 等这样的想法并没有使用ISerializable,我认为最近的代码使用 xml/json 等而不是远程处理
【解决方案2】:

INotifyPropertyChange:用于数据绑定到 WPF、winforms 和 silverlight 中的 UI 类

【讨论】:

  • Winforms(和 IIRC WPF)也支持 *Changed 模式
【解决方案3】:

IQueryable<T>:允许您对可查询的数据源执行请求。例如

        IQueryable<Project> projects = db.Projects;
        var selectedItems = projects
            .Where(x => x.Workers.Count() > 10 && x.Status != 1)
            .ToArray();

在此示例中,过滤将在 SQL Server 上完成(涉及将表达式 x =&gt; x.Workers.Count() &gt; 10 &amp;&amp; x.Status != 1 转换为 SQL 语句的棘手机制) 因此无需编写自定义 SQL 命令即可使用所有数据源。

也不仅可以用于SQL,还可以查询对象或其他任何东西,只要找到IQueryable&lt;T&gt;的实现即可

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-13
    • 2016-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    • 2016-05-08
    相关资源
    最近更新 更多