新手问题:在C#中,我该如何放置一组条件,并且其中一个必须是两个正确的值或条件,而不仅仅是其中一个。例如,以下是有效的语法:
if ( (x && y) || y || z) { do this;}
只要涉及的所有标识符都是bool
标识符,它就是有效的语法,表示包含值的局部变量,参数,常量,字段或属性bool
。如果不是,则不是合法语法。
我也只指这部分:
if ( (x && y) || y || z) { do this;}
^----------------------^
最后一部分:{ do this; }
是不合法的语法,但我明白你的问题不是关于那部分。
具体来说,您的整个语句说:
x && y
必须是真的y
必须是真的z
必须是真的如果其中任何一个成立,则无论如何都可以“执行此操作”。
现在,让我们进一步分析您的表情。
由于是y
独立的,所以参与其中似乎毫无意义x
。
让我们来看看这个表情:(x && y) || y
和看的可能值x
,并y
与结果:
x | y | result | why?
---------------------------------------------
false | false | false | because neither x nor y is true
false | true | true | because y is true: ... ? || y
true | false | false | because y has to be true either way
true | true | true | because y is true: ... ? || y
基本上,您可以x
完全删除它,它与结果无关(不过请参阅下面的我的额外评论)。
因此,您的最终声明可能是这样的:
if (y || z) { do this; }
综上所述,这是另外一件事。我也假设x
,y
并且z
是其他内容的占位符。如果x
是一种方法怎么办?那会重要吗?
是的,因为必须知道该x()
方法的结果。如果调用该方法有副作用不仅仅是返回true
或false
则你很可能不希望直接将其移除。表达式的最终结果将不取决于的值x
,但是可能会产生任何副作用。可能是可疑的设计,但是如果没有更具体的说明,这很难说。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句