使用 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.

类型的三元组

您试图将三元组用作独立语句,这是不合法的。