能否将扩展方法应用于接口?(C#问题)
例如,实现以下功能:
创建一个ITopology接口。
为此接口创建一个扩展方法(例如:public static int CountNodes(this ITopology topologyIf))。
当创建实现ITopology接口的类(例如:MyGraph)时,它会自动拥有Count Nodes扩展方法。
这样就不需要让实现该接口的类与扩展方法中定义的设置类名称相对应。
能否将扩展方法应用于接口?(C#问题)
例如,实现以下功能:
创建一个ITopology接口。
为此接口创建一个扩展方法(例如:public static int CountNodes(this ITopology topologyIf))。
当创建实现ITopology接口的类(例如:MyGraph)时,它会自动拥有Count Nodes扩展方法。
这样就不需要让实现该接口的类与扩展方法中定义的设置类名称相对应。
IEnumerable<T>
构建的整个扩展方法集合。 要实现一个扩展方法,与为类实现相同:public static class TopologyExtensions
{
public static void CountNodes(this ITopology topology)
{
// ...
}
}
就接口而言,扩展方法没有什么特别的不同之处;扩展方法只是一个静态方法,编译器会对其应用一些语法糖,使其看起来像是目标类型的一部分。