如何在面试中解释代表

时间:2011-01-08 16:02:46

标签: c#

我知道我们在Stackoverflow中有很多相似的类型问题,我也知道委托是什么以及它是如何工作的,但有时在面试中解释代表有点困难,有关如何解释它的任何建议吗?

5 个答案:

答案 0 :(得分:5)

它本质上是一个强类型函数指针。这是一种将任意代码作为方法参数传递的方法。

答案 1 :(得分:2)

委托是一个C#语言元素,允许您引用方法。

答案 2 :(得分:2)

我听到代表被描述的一些方式:

  • 语言和框架支持一流的功能。
  • 单方法接口。
  • 类型安全的函数指针。
  • 表示具有明确定义的合同的操作序列的对象。

如果需要了解更多细节,我会:

  • 区分System.Delegate,delegate- types ,委托类型变量和委托 - 实例;详细说明他们的声明,转让,传递和调用。
  • 强调其不可变的参考类型性质。
  • 讨论多播代表。
  • 列出框架中的一些常见委托类型,尤其是Func<>和行动<>家庭。
  • 使用方法组,匿名方法,lambda表达式和闭包来委托委托。解释C#中delegate关键字的用法以及编译器赋予程序员的各种礼貌
  • 讨论他们与线程,事件,表达式树和LINQ的关系。
  • 讨论:
    • 高阶函数 - currying,combinators等。
    • 代表如何与反思一起使用。
    • 与代表的差异。

答案 3 :(得分:1)

使用真实的比喻怎么样?

http://www.wordreference.com/definition/delegate

  

委托(任务或责任)给另一个人(在这种情况下是一种方法)。

在计算单词中,您可以用同样的方式解释这一点。当您将委托传递给方法时,您不知道该方法的实现,只是对该方法的引用,并且委托负责执行它。

答案 4 :(得分:0)

它是一个封装方法签名的实体,它提供了一种类型安全的,面向对象的机制,可以将函数作为对象处理,而不必使用函数指针。