1
5
可以将委托视为等同于使用单个方法的接口。在不支持委托的语言中,通常使用委托的模式通常是使用接口编写的。 例如,Java使用 anonymous inner classes 实现接口,在该接口中通常使用C#中的匿名委托/lambda表达式: 爪哇语:
在这两种情况下,目的都是为线程提供一个入口点。一种方法使用接口,另一种方法使用委托,但是如果忽略“管道”,很明显接口的作用与委托相同。注意,使用lambda表达式来表达这个想法的可用性是 不 代表专用。 Project Lambda 必要地 需要委托类型。
即使在.NET框架中,接口类型和委托类型之间也存在等价性,例如
编辑:更新代码,使区别更清楚。 |
2
1
就委托而言,这通常是通过事件完成的。ClassB将定义一个事件(它将基于委托),ClassA将通过构建绑定到其方法之一的委托,然后将委托与ClassB中的委托组合,将自己绑定到该事件。当ClassB想要与ClassA通信时,它只需调用与事件相关联的委托。
在这两种情况下,ClassB都不知道ClassA的存在,但ClassB仍然能够与ClassA通信。 |
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |