首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NRules会话如何比较事实?

NRules会话如何比较事实?
EN

Stack Overflow用户
提问于 2019-03-13 00:29:25
回答 1查看 339关注 0票数 0

我使用this.session.Insert(对象fact1)或方法将事实放入工作集中。

现在,其中一个事实发生了变化,我称之为this.session.Replace(对象事实)

NRules如何知道要替换哪个对象?它比较了平等的参考文献吗?它调用等号运算符吗?我猜您可能是在使用字典逻辑,因此对象的GetHashCode()等于()和确定两个事实是相同的,但是在继续我的设计之前,我需要一些肯定。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-13 04:21:24

当调用更新、UpdateAll、NRules或RetractAll时,引擎确实会在字典中查找事实。因此,引擎使用对象的等于和GetHashCode实现。

但是,如果更新/撤回相同的对象实例,就没有必要覆盖等于和GetHashCode,因为引用类型的默认实现(它使用ReferenceEquals )工作得很好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55132638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档