我把它扔出去只是好奇心的问题......
假设你只是期望/想要提供一种方法,这是不赞成还是不好的做法?
public class Something {
public Action OnRemove = () => { };
public Action<object, EventArgs> OnFinishedLoading = (sender, e) => { };
}
// then used like...
something.OnRemove = () => { /*do something...*/ };
something.OnFinishedLoading = (sender, e) => { /*do something else...*/ };
Run Code Online (Sandbox Code Playgroud)
我意识到这就像在事件中作弊一样,但我对这种方法有什么不好的意思吗?从长远来看,这是否会导致您的应用程序出现任何潜在问题?
我意识到如果你想要运行多种方法,那么事件会更好,这主要是一个问题,即你是否只想要/期望一种方法.
嗯,最明显的"错误"是它揭露了公共领域.我至少使用了一个属性 - 此时事件可能会更简单.它使用比属性更少的代码提供更大的灵活性(因为您无法使用具有特定默认值的自动实现的属性).
另一种方法是将它放在构造函数中,然后将其保存为私有只读字段.这可能是我真正倾向于做的事情......是否真的需要将行动作为财产/领域公开?
归档时间: |
|
查看次数: |
247 次 |
最近记录: |