字符串插值:C# 编译器中的错误?
String interpolation: a bug in c# compiler?
string Test(bool @bool) => $"you're {@bool?"hired":"fired"} Have a nice day!";
以上代码导致编译错误。
但为什么?
请注意
string test = $"this {"is"} working";
有效。
冒号结束插值。只需括号条件:
string Test(bool @bool) => $"you're {(@bool ? "hired":"fired")} Have a nice day!";
对于这个问题,您不能使用 ?,:
之类的东西,要使用这些,您必须准确设置您的条件应该放在 ()
中,例如:
string Test(bool @bool) => $"you're {(@bool ? "hired":"fired")} Have a nice day!";
您可以尝试使用 ()
包含您的 ?:
运算符
string Test(bool @bool) => $"you're {(@bool ? "hired":"fired")} Have a nice day!";
string Test(bool @bool) => $"you're {@bool?"hired":"fired"} Have a nice day!";
以上代码导致编译错误。
但为什么?
请注意
string test = $"this {"is"} working";
有效。
冒号结束插值。只需括号条件:
string Test(bool @bool) => $"you're {(@bool ? "hired":"fired")} Have a nice day!";
对于这个问题,您不能使用 ?,:
之类的东西,要使用这些,您必须准确设置您的条件应该放在 ()
中,例如:
string Test(bool @bool) => $"you're {(@bool ? "hired":"fired")} Have a nice day!";
您可以尝试使用 ()
包含您的 ?:
运算符
string Test(bool @bool) => $"you're {(@bool ? "hired":"fired")} Have a nice day!";