- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
IEditableObject 之间有什么区别?和 IRevertibleChangeTracking (都来自 System.ComponentModel 命名空间)?看起来第一个支持显式事务,而第二个更隐式——但最终结果是一样的。我应该如何在代码中实现它?目前我在 BeginEdit 什么都不做并调用RejectChanges和 AcceptChanges在 EndEdit和 CancelEdit分别。我的问题是这也将接受在 BeginEdit 之前所做的更改。
这真的是 Microsoft 想要的,还是我试图实现两个互斥的接口(interface)?
最佳答案
这两个接口(interface)并不互斥。它们只是为了支持不同但有些相关的场景,这些场景也可以由相同的给定类来实现。这是一个简单的解释:
IEditableObject接口(interface)旨在支持对象需要在编辑时以某种特定方式管理其内部状态的场景。
因此,该接口(interface)包含明确标记编辑阶段何时开始、完成或中止的方法,以便可以采取适当的操作来修改这些阶段的对象状态。
IRevertibleChangeTracking接口(interface)旨在支持对象需要能够回滚到其先前状态的场景。
该接口(interface)具有标记对象的当前状态何时应永久化或应恢复到最后已知的永久状态的方法。
关于c# - IEditableObject 和 IRevertibleChangeTracking 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2966959/
IEditableObject 之间有什么区别?和 IRevertibleChangeTracking (都来自 System.ComponentModel 命名空间)?看起来第一个支持显式事务,而第
我是一名优秀的程序员,十分优秀!