Tag: 有条件

xor有3个值

我需要在3个值之间做一个xor条件,即我需要三个值中的一个为真但不超过一个而不是无。 我以为我可以使用xor ^运算符,但它没有按预期工作。 我希望这会返回假,但它不会。 (true ^ true ^ true) 所有其他组合似乎按我的预期工作。 在查看xor运算符的文档时,他们只讨论比较2个值,并且我无法在线查找3个或更多值的任何内容。 任何人都可以放弃任何亮点或建议一个简单的方法吗?

用多态重构或类似替换条件?

我曾尝试过问过这个问题的变体。 我得到了一些有用的答案,但对我来说仍然没有任何感觉。 在我看来,这不应该是一个难以破解的坚果,但我无法找到一个优雅的简单解决方案。 (这是我以前的post,但请首先尝试将此处所述的问题视为程序代码,以免受早期解释的影响,这些解释似乎导致了非常复杂的解决方案: 成本计算器应用程序的设计模式? ) 基本上,问题是为可能包含许多服务的项目创建一个计算器。 在这种情况下“写作”和“分析”。 对于不同的服务,小时数的计算方式不同:写作是通过将“每个产品”小时数乘以产品数来计算的,项目中包含的产品越多,小时费率越低,但总数小时数逐步累积(即对于中型项目,您可以采用小范围定价,然后将中等价格定价加到实际产品数量上)。 然而,分析它更简单,它只是每个尺寸范围的批量率。 你怎么能将它重构成一个优雅的,最好是简单的面向对象的版本(请注意,我绝不会以纯粹的程序方式这样写它,这只是为了以另一种方式简洁地显示问题)。 我一直在考虑工厂,战略和装饰模式,但不能让任何工作得很好。 (我在前一段时间阅读了Head First Design Patterns,所描述的装饰器和工厂模式都与这个问题有一些相似之处,但我很难看到它们是那里所说的好解决方案。装饰器例子似乎非常复杂,只是添加了调味品,但也许它可以在这里工作得更好,我不知道。至少事实上,小时数的计算逐渐积累,让我想到了装饰模式……以及披萨工厂书中的工厂模式示例。好吧,它似乎创造了这样一个荒谬的类爆炸,至少在他们的例子中。我之前已经找到了很好的工厂模式,但我看不出如何在没有得到一套非常复杂的类的情况下使用它) 主要目标是只需要在一个地方(疏松耦合等)进行更改,如果我要添加一个新参数(比如另一个大小,如XSMALL,和/或其他服务,如“管理”)。 这是程序代码示例: public class Conditional { private int _numberOfManuals; private string _serviceType; private const int SMALL = 2; private const int MEDIUM = 8; public int GetHours() { if (_numberOfManuals <= SMALL) { if (_serviceType == "writing") return 30 […]

在C#中将字符串值转换为运算符

我试图找出一种动态构建条件的方法。 在例子中 var greaterThan = “>”; var a = 1; var b = 2; if(a Convert.ToOperator(greaterThan) b) {…} 我读过这篇文章,但不太明白如何实现一些东西。 C#转换字符串以在逻辑条件下使用 Ano建议非常感谢 谢谢

条件“可浏览”属性

有没有办法使“可浏览”属性成为条件,因此应用它的属性有时会出现在属性页面中,有时不会出现? 谢谢 :)