大佬教程收集整理的这篇文章主要介绍了c# – 如果发生两种情况中的任何一种,那么实现布尔逻辑的更简洁方法是什么?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
SynchA(); SynchB(); updateLastTime();
if(synchA.checked) { SynchA(); } if(synchB.checked) { SynchB(); }
但是现在我只想调用一个或两个一起执行的updateLastTime(),因此我总是这样做:
bool synchHappened = false; if(synchA.checked) { SynchA(); synchHappened = true; } if(synchB.checked) { SynchB(); synchHappened = true; } if(synchHappened) { updateLastTime(); }
最后一步总是困扰我,因为我将这一个bool传播到三个逻辑分支.
对于我可以使用的上述逻辑/场景,是否有一些明显更好的@L_944_9@?
在你的特定情况下,我会建议Keep It Simple(没有Strategy Pattern,依此类推),所以
提取并将开关逻辑封装到属性中.因此每次需求都会改变 – 您需要更新特定开关或主逻辑本身的逻辑.
带有封装规则的交换机:
bool IsupdateLastTime { get { // logic here even can be fully or partially injected // as Func<bool> return this.IsSyncA || this.IsSyncB; } } bool IsSyncA { get { return synchA.checked; } } bool IsSyncB { get { return synchB.checked; } }
主要逻辑:
if (this.IsupdateLastTimE) { this.updateLastTime(); }
以上是大佬教程为你收集整理的c# – 如果发生两种情况中的任何一种,那么实现布尔逻辑的更简洁方法是什么?全部内容,希望文章能够帮你解决c# – 如果发生两种情况中的任何一种,那么实现布尔逻辑的更简洁方法是什么?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。