C#中最常用的接口是什么?
我尝试在C#中搜索最常用的内置接口,但找不到文章,所以我想我们可以回顾一下。
我们在答案中使用以下约定:
IinterfaceName1:为此
IinterfaceName2:为此
我认为最重要的两个是语言支持:
-
IEnumerable
(和IEnumerable
):用于foreach
和LINQ -
IDisposable
:用于需要清理的资源,与using
一起using
除此之外…
-
IComparable
和IComparer
:用于广义排序 -
IEquatable
和IEqualityComparer
:用于广义相等 -
IList
和ICollection
:用于可变集合 -
IDictionary
:用于查找集合
INotifyPropertyChange
:用于WPF中的UI类的数据绑定,winforms和silverlight
IQueryable
:允许您对可查询的数据源执行请求。 例如
IQueryable projects = db.Projects; var selectedItems = projects .Where(x => x.Workers.Count() > 10 && x.Status != 1) .ToArray();
在这个例子中,过滤将在SQL Server上进行(涉及棘手的机制,将Expression x => x.Workers.Count() > 10 && x.Status != 1
为SQL语句)因此无需编写自定义SQL命令使用所有可能的数据源。
也可以不仅用于SQL,你可以查询对象或其他任何东西,只需找到IQueryable