Answers:
他们当然可以;Linq的大部分内容都是围绕接口扩展方法构建的。
接口实际上是扩展方法开发的驱动力之一。由于扩展程序无法实现自己的任何功能,因此扩展方法是将实际代码与接口定义相关联的最简单方法。
有关围绕构建的扩展方法的完整集合,请参见Enumerable类IEnumerable<T>
。要实现一个,与为一个类实现一个是相同的:
public static class TopologyExtensions
{
public static void CountNodes(this ITopology topology)
{
// ...
}
}
就接口而言,扩展方法没有什么特别的不同。扩展方法只是静态方法,编译器会应用一些语法糖使其看起来像该方法是目标类型的一部分。