有没有办法同时初始化这两个变量?
在这个例子中"时间"变量可以是""或者有价值。
var variable1 = string.IsNullOrEmpty(time) ? string.Empty : "value";
var variable2 = string.IsNullOrEmpty(time) ? "value" : string.Empty;
答案 0 :(得分:1)
在这里,一个完全不可读的混乱:
string time = null;
string variable1, variable2 = (variable1 = string.IsNullOrEmpty(time) ? string.Empty : "value") == string.Empty ? "value" : string.Empty;
如果你不知道,这不是一个严肃的建议。
答案 1 :(得分:-1)
不可能。但是你可以创建一些辅助类来保存这两个变量。或者您可以使用一些开箱即用的功能,例如Tuple
:
var variable = string.IsNullOrEmpty(time) ? Tuple.Create(string.Empty, "value")
: Tuple.Create("value", string.Empty);
然后将这两个值视为variable.Item1
和variable.Item2
。
注意:明智地使用 ,因为变量通常更好,因为它们有名称,因此 - 某些含义。所有Tuples
和Item1
过多的Item2
可能会很快变得不清楚,它们的用途是什么。
答案 2 :(得分:-1)
没有。假设"value"
在两种情况下都相同,那么你可以做的最多就是替换" value"第二行有variable1
。
答案 3 :(得分:-2)
可以将单行代码上的多个变量初始化为相同的值:
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;
}