![]() |
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
编写抽象类以包装
如果你想实现
这不
力
实现者可以做任何事情;但是它明确地建立了一个期望
|
![]() |
OREO · 如何在不实际单击复选框的情况下选中它 12 月前 |
![]() |
Dan · 在元素外部设置html点击处理程序点击后立即触发 1 年前 |
![]() |
Mero · Svelte在父事件调用上调用新的嵌套事件处理程序 1 年前 |
|
iorice · usercontrol dll中的组件事件 1 年前 |
![]() |
Awin · 点击事件功能不适用于Vue组件 1 年前 |
![]() |
Kiwi · 将可共享的自定义数据添加到事件MS图形api 1 年前 |