我们如何使用委托进行抽象?我们还可以使用接口进行抽象,哪个更好?是使用接口还是使用委托。
一个简单的实际示例会有所帮助。
谢谢。
答案 0 :(得分:0)
要部分回答此问题,请考虑通用的Linq扩展方法OrderBy
,该方法已记录在here中。可以使用委托来提供从序列成员到类型的映射,然后将该类型用于适当的比较。因此,实际排序与通过结果类型的实现隐式给出的顺序脱钩。所使用的delagate类型允许对排序算法进行更抽象的实现。
答案 1 :(得分:0)
根据Microsoft docs about delegates
将方法作为参数引用的能力使代表非常适合 定义回调方法。例如,对方法的引用 比较两个对象可以作为参数传递给排序 算法。由于比较代码是在单独的过程中,因此 排序算法可以用更通用的方式编写。
如果要模拟继承,则必须使用接口 结构,因为它们实际上不能从另一个结构或 课。
因此,我认为很明显,必须使用接口进行抽象。请查看Microsoft文档链接作为示例。