使用 C# 三元运算符
Using C# Ternary Operator
可能是一个简单的语法问题。这是对控制台程序的尝试,该程序读取通过用户输入接收到的字符串的长度。如果长度大于144,提示用户字符串长度过长,否则输入的字符串只是输出到控制台。
string input = Console.ReadLine();
(input.Length > 144) ? Console.WriteLine("The message is too long"); : Console.WriteLine(input);
Console.ReadLine();
在第 2 行的当前状态下出现语法错误。我是否缺少括号?
尝试:
Console.WriteLine((input.Length > 144) ? "The message is too long" : input);
您需要使用运算符的 return 值,否则会收到编译时错误 Only assignment, call, increment, decrement, and new object expressions can be used as a statement
。
None 这些其他答案将编译,我不确定每个人都得到了什么。
你多了一个分号。
三元表达式是ONE表达式,所以最后只有一个分号。
(input.Length > 144) ? Console.WriteLine("The message is too long") /*No Semi Here*/ : Console.WriteLine(input);
我认为在 C# 中(与 C 和 C++ 不同),三元表达式不能独立。
它的结果必须被分配或使用。
表达式整体必须有值,但Console.WriteLine
没有return值(return类型void
)。你不能有一个评估为 void
.
类型的三元组
您试图将三元组用作独立语句,这是不合法的。
可能是一个简单的语法问题。这是对控制台程序的尝试,该程序读取通过用户输入接收到的字符串的长度。如果长度大于144,提示用户字符串长度过长,否则输入的字符串只是输出到控制台。
string input = Console.ReadLine();
(input.Length > 144) ? Console.WriteLine("The message is too long"); : Console.WriteLine(input);
Console.ReadLine();
在第 2 行的当前状态下出现语法错误。我是否缺少括号?
尝试:
Console.WriteLine((input.Length > 144) ? "The message is too long" : input);
您需要使用运算符的 return 值,否则会收到编译时错误 Only assignment, call, increment, decrement, and new object expressions can be used as a statement
。
None 这些其他答案将编译,我不确定每个人都得到了什么。
你多了一个分号。 三元表达式是ONE表达式,所以最后只有一个分号。
(input.Length > 144) ? Console.WriteLine("The message is too long") /*No Semi Here*/ : Console.WriteLine(input);
我认为在 C# 中(与 C 和 C++ 不同),三元表达式不能独立。
它的结果必须被分配或使用。
表达式整体必须有值,但Console.WriteLine
没有return值(return类型void
)。你不能有一个评估为 void
.
您试图将三元组用作独立语句,这是不合法的。