同时初始化两个变量
本文关键字:两个 变量 初始化 | 更新日期: 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.Item1
和 variable.Item2
。
注意:明智地使用它,因为变量通常更好,因为它们有名称,因此 - 一些含义。太多Tuples
所有这些Item1
和Item2
很快就会变得不清楚,它们的意图是什么。
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;
}