同时初始化两个变量

本文关键字:两个 变量 初始化 | 更新日期: 2023-09-27 18:31:03

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

在此示例中,"time"变量可以是"或具有值。

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.Item1variable.Item2

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

No.假设"value"在两种情况下都相同,您最多可以做的就是将第二行中的"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;
    }