0

有没有办法同时初始化这两个变量?

在此示例中,“时间”变量可以是“”或具有值。

var variable1 = string.IsNullOrEmpty(time) ? string.Empty : "value";
var variable2 = string.IsNullOrEmpty(time) ? "value" : string.Empty;
4

4 回答 4

1

给你,一个完全不可读的混乱:

string time = null;

string variable1, variable2 = (variable1 = string.IsNullOrEmpty(time) ? string.Empty : "value") == string.Empty ? "value" : string.Empty;

如果您无法分辨,这不是一个严肃的建议。

于 2014-11-19T13:11:30.507 回答
-1

不可能。但是您可以创建一些辅助类来保存这两个变量。或者您可以使用一些开箱即用的方法,例如Tuple

var variable = string.IsNullOrEmpty(time) ? Tuple.Create(string.Empty, "value") 
                                          : Tuple.Create("value", string.Empty);

然后以variable.Item1和访问这两个值variable.Item2

注意:明智地使用它,因为变量通常更好,因为它们具有名称,因此具有某些含义Tuples所有这些都太多了Item1Item2很快就会变得不清楚,它们的目的是什么。

于 2014-11-19T13:04:11.480 回答
-1

不。假设"value"在这两种情况下都是相同的,你能做的最多就是variable1在第二行替换“值”。

于 2014-11-19T13:04:12.287 回答
-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;
    }
于 2014-11-19T13:05:04.467 回答