|
|
1
2
你基本上是在要求一些版本的 Aspect Oriented Programming (AOP)。您有一个通用的操作,您希望在所有属性之间执行,而不需要在任何情况下实现它。 我不确定在C中AOP的真正选择是什么,但我以前用过的是 Spring.Net AOP . 它将在动态创建的包装器中包装类,该包装器将截获对属性的所有调用,然后允许您实现一些要执行的公共逻辑。 |
|
|
2
3
不,这在语言中是不可能的。 然而,处理这种情况的一种方法是使用 INotifyPropertyChanged .如果基类指定它实现此接口,则子类还应引发PropertyChanged事件。基类可以使用它跟踪更改并验证对象。 |
|
|
3
2
看看postsharp来添加这个功能,或者看看structuremap中的这个线程。 http://groups.google.com/group/structuremap-users/browse_thread/thread/fbadf4c2779ab8ed?hl=en |
|
|
4
0
如果所讨论的属性是虚拟的,您可以重写它们以提供通知并调用基类的实现以确保“set”通过。 |
|
|
5
0
在C语言中,在每个setter中没有代码的情况下,唯一的方法是通过一个transparentproxy。它有点笨重,但它可以使编码人员看不见。 |
|
|
6
0
您可以在抽象类中创建一个虚拟方法,并从属性设置器调用它。然后可以在继承的类中重写它。 |
|
|
7
0
我经常碰到这个问题…所以我使用这样的模式:
|
|
|
A B · C#Excel自动调整列避免长文本时出错 8 月前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 8 月前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 8 月前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 8 月前 |