有没有办法同时初始化这两个变量?
在此示例中,“时间”变量可以是“”或具有值。
var variable1 = string.IsNullOrEmpty(time) ? string.Empty : "value";
var variable2 = string.IsNullOrEmpty(time) ? "value" : string.Empty;
有没有办法同时初始化这两个变量?
在此示例中,“时间”变量可以是“”或具有值。
var variable1 = string.IsNullOrEmpty(time) ? string.Empty : "value";
var variable2 = string.IsNullOrEmpty(time) ? "value" : string.Empty;
给你,一个完全不可读的混乱:
string time = null;
string variable1, variable2 = (variable1 = string.IsNullOrEmpty(time) ? string.Empty : "value") == string.Empty ? "value" : string.Empty;
如果您无法分辨,这不是一个严肃的建议。
不可能。但是您可以创建一些辅助类来保存这两个变量。或者您可以使用一些开箱即用的方法,例如Tuple
:
var variable = string.IsNullOrEmpty(time) ? Tuple.Create(string.Empty, "value")
: Tuple.Create("value", string.Empty);
然后以variable.Item1
和访问这两个值variable.Item2
。
注意:明智地使用它,因为变量通常更好,因为它们具有名称,因此具有某些含义。Tuples
所有这些都太多了Item1
,Item2
很快就会变得不清楚,它们的目的是什么。
不。假设"value"
在这两种情况下都是相同的,你能做的最多就是variable1
在第二行替换“值”。
可以在一行代码中将多个变量初始化为相同的值:
string variable2;
var variable1 = variable2 =(string.IsNullOrEmpty(time) ? string.Empty : "value");
但是,我认为这是不可读的,并且会避免它。
对于您正在尝试做的事情(来自您的评论),我将使用一个简单的 if 语句,以便 IsNullOrEmpty 检查只执行一次。
string variable1;
string variable2;
if (string.IsNullOrEmpty(time))
{
variable1 = null;
variable2 = "value";
}
else
{
variable1 = "value";
variable2 = null;
}