1
7
两者最大的区别之一是你可以轻松地取消订阅活动。用基于方法的方法退订是一个简单的操作,简单的使用原来的方法
对于lambdas,这并不是那么简单。必须存储lambda表达式,以便稍后用于取消对事件的订阅
这确实有损于使用lambda表达式的便利性。 |
2
2
在大多数具有lambda(包括C#)的语言中,在方法中创建lambda会创建闭包——也就是说,声明方法中的局部变量对lambda是可见的。这是我所知道的最大的不同。 除此之外,除非以其他函数可以访问的方式命名事件处理程序,否则以后很难分离事件处理程序。这可以通过将委托存储在实例级或类级变量中来实现,但这可能有点难看。 |
3
1
使用Lambda的最大原因是延迟执行,即定义要执行的操作,但直到稍后才有参数。对于事件和回调,通常不使用lambda;而是使用匿名方法。
一般来说,我对回调和事件使用的实际方法多于匿名方法;我处理的事件与对象的生存期有关,而不是与方法的生存期有关,我发现在代码中,在连接回调的函数外部明确定义回调更为清晰。其中一些是个人喜好。 |
4
0
在大多数情况下,实际差别不大。使用哪一个主要取决于个人喜好(即您希望代码使用什么) 例如)。在某些情况下,有一些实际的理由选择其中一个:
在这种特殊情况下 |
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |