【发布时间】:2011-12-06 06:04:26
【问题描述】:
有没有办法让三元运算符做同样的事情?:
if (SomeBool)
SomeStringProperty = SomeValue;
我可以这样做:
SomeStringProperty = someBool ? SomeValue : SomeStringProperty;
但是即使 SomeBool 为假(对),这也会触发 SomeStringProperty 的 getter 和 settor?所以和上面的说法不一样。
我知道解决方案是不使用三元运算符,但我只是想知道是否有办法忽略表达式的最后一部分。
【问题讨论】:
-
如果将
SomeStringProperty =替换为Console.WriteLine(会怎样? -
这就像问“我可以使用减法运算符来除吗?”
-
三元运算符不是问题。问题是您想要抑制与三元运算符无关的 assignment 操作。而抑制赋值操作的方法就是不执行赋值。