如何从单个三元运算符返回多个值?

Aus*_*yan 0 c# tuples c#-7.0 c#-7.2

假设我有以下代码:

int x    = GetBoolValue() ? 0 : 1;
string y = GetBoolValue() ? "foo" : "bar";
float z  = GetBoolValue() ? 0.4f : 0.5f;
Run Code Online (Sandbox Code Playgroud)

有没有将这三个语句压缩成一个,以使代码更易于阅读?

Aus*_*yan 7

使用C#7值元组,您可以执行以下操作:

var (x, y, z) = GetBoolValue() ? (0, "foo", 0.4f) : (1, "bar", 0.5f);
Run Code Online (Sandbox Code Playgroud)

var如果他们已经被宣布可以被删除,这将仍然正常工作.