![]() |
1
63
主要的区别是如果你使用
一个优势与主导的设计模式(除了权力的相同性)是,你可以扩展
|
![]() |
2
78
根据前面的一些答案,我将把我的答案分为三个部分。
第一,使用的物理限制
第二,一致性含义。如果您有一个已经在使用的大型系统,那么遵循系统其余部分的设计方式几乎总是更好的,除非您有一个非常好的理由不这么做。如果您公开面对需要维护的事件,那么替换派生类的能力可能很重要。记住这一点。
第三,在现实生活中,我个人发现,我倾向于为我需要与之交互的属性更改(尤其是在使用相互交互的视图模型执行MVVM时)或事件具有单个参数的情况下,创建许多一次性事件。大多数时候,这些事件的形式
|
![]() |
3
15
在大多数情况下,我会说遵循模式。我
有
偏离了它,但很少,而且是出于特定的原因。在这种情况下,我会遇到的最大问题是,我可能仍然会使用
|
![]() |
4
14
当您的代码位于一个300000行的项目中时,更为复杂的方法的优势就出现了。 用这个动作,就像你一样,没有办法告诉我布尔,int和blah是什么。如果您的操作传递了一个定义参数的对象,那么确定。 使用一个需要EventArgs的事件处理程序,如果您要用getter为注释了其用途的属性完成诊断args示例,那么您的应用程序就更容易理解了。另外,请在diagnosticsargs构造函数中注释或完整命名参数。 |
![]() |
5
6
如果您遵循标准的事件模式,那么您可以添加一个扩展方法,以使事件触发检查更安全/更容易。(即,下面的代码添加了一个名为safefire()的扩展方法,该方法执行空检查,并且(显然)将事件复制到单独的变量中,以避免出现通常会影响事件的空竞争条件。) (尽管我有两种想法,您是否应该对空对象使用扩展方法…)
|
![]() |
6
2
看着 Standard .NET event patterns 我们发现
在下面的同一页中,我们发现了一个典型事件定义的示例,它类似于
我们有没有定义
处理程序可能
哪里
|
![]() |
A B · C#Excel自动调整列避免长文本时出错 3 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 3 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 3 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 4 月前 |