代表如何提供抽象

时间:2019-03-12 06:46:48

标签: c# .net delegates abstraction

我们如何使用委托进行抽象?我们还可以使用接口进行抽象,哪个更好?是使用接口还是使用委托。

一个简单的实际示例会有所帮助。

谢谢。

2 个答案:

答案 0 :(得分:0)

要部分回答此问题,请考虑通用的Linq扩展方法OrderBy,该方法已记录在here中。可以使用委托来提供从序列成员到类型的映射,然后将该类型用于适当的比较。因此,实际排序与通过结果类型的实现隐式给出的顺序脱钩。所使用的delagate类型允许对排序算法进行更抽象的实现。

答案 1 :(得分:0)

根据Microsoft docs about delegates

  

将方法作为参数引用的能力使代表非常适合   定义回调方法。例如,对方法的引用   比较两个对象可以作为参数传递给排序   算法。由于比较代码是在单独的过程中,因此   排序算法可以用更通用的方式编写。

interface

  

如果要模拟继承,则必须使用接口   结构,因为它们实际上不能从另一个结构或   课。

因此,我认为很明显,必须使用接口进行抽象。请查看Microsoft文档链接作为示例。