|
|
1
9
我的建议是:
然后重写
|
|
|
2
3
实际上,没有办法确保IStore的每个实现都会引发一个事件。您可以有一个具有Put方法的抽象类,但这并不意味着您可以在抽象类的子类中有一个Put方法,该子类完全忽略抽象类的方法。 最后,最好的方法 鼓励 事件的引发是通过抽象类来编写开发人员应该使用的方法。那样的话,他们就得走了 不 使用它 |
|
|
3
2
您需要让抽象类从接口实现Put方法。还可以添加抽象方法,如putimpl,如下所示:
|
|
|
4
1
是的,您应该使用抽象类而不是接口。 如果您决定使用一个实现接口的抽象类,它不会阻止其他开发人员实现自己的接口版本,这最终不会引发事件。 也就是说,即使使用抽象类也不会强制其他开发人员使用您的方法,因为它们可能会覆盖您的方法。 我认为最好的方法是使用模板方法:
实际存储必须实现doput方法,返回一个布尔值,指示Put操作是否成功。事件将从Put方法引发,该方法是公开可见的。 |
|
|
5
0
如果你真的需要使用一个接口,那么新的 PostSharp 2 可以做方面继承。不幸的是,要获得这项功能,你至少需要购买200美元的个人许可证。 有了这样一个方面,您将把它放在接口中声明的方法上,并且接口的所有实现都将继承它。 |
|
|
6
0
一些注意事项:我确实将其设置为受保护的,因此所有派生类都必须实现它,但客户端代码不能调用它。 |
|
|
7
0
编写抽象类以包装
如果你想实现
这不
力
实现者可以做任何事情;但是它明确地建立了一个期望
|
|
|
A B · C#Excel自动调整列避免长文本时出错 11 月前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 11 月前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 11 月前 |
|
|
Duck0 · 这个对象在更高的帧率下会更快吗,因为它在Update()中? 11 月前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 11 月前 |