0

我想我已经得到了代表们的关注;现在我知道通常存在大多数“事情”来解决特定问题,但是代表解决了什么问题。

IMO 当我们想要调用无法从另一个项目引用的现有项目的方法时,它解决了这个问题(否则我们可能会遇到两个项目相互引用的情况,这是不允许的)。这对我来说很有意义,我可以看到它的用途。

还有其他时间/原因/好处吗?

4

2 回答 2

1

它们的存在是为了让您可以将函数放入变量中并对它们进行操作。例如Enumerable.Select,接受一个委托,告诉它如何处理每个元素。Select如果没有代表,您将如何实施?例如,您必须实现一个接口,但这很笨拙。(Java 就是这样做的,它不是那么好)。

实际上,委托很像单方法接口。

它们还用于本机代码互操作,以便您可以提供指向本机方法的本机函数指针。

于 2013-02-21T12:51:24.743 回答
1

例如,我在 winform 中使用它们通过按钮关闭表单。

button.Click += delegate{this.Close();};
于 2013-02-21T12:51:48.333 回答