可能是一个简单的语法问题。这是对控制台程序的尝试,该程序读取通过用户输入接收的字符串的长度。如果长度大于144,则通知用户字符串长度太长,否则输入的字符串只输出到控制台。
string input = Console.ReadLine();
(input.Length > 144) ? Console.WriteLine("The message is too long"); : Console.WriteLine(input);
Console.ReadLine();
在第2行获取当前状态的语法错误。我是否缺少括号?
答案 0 :(得分:8)
尝试:
Console.WriteLine((input.Length > 144) ? "The message is too long" : input);
您需要使用运算符的返回值,否则会收到编译时错误Only assignment, call, increment, decrement, and new object expressions can be used as a statement
。
这些其他答案都不会编译,我不确定每个人都会得到什么。
答案 1 :(得分:-3)
你有一个额外的分号。 三元表达式是ONE表达式,因此它的末尾只有一个分号。
(input.Length > 144) ? Console.WriteLine("The message is too long") /*No Semi Here*/ : Console.WriteLine(input);
我相信在C#中(与C和C ++不同),三元表达式不能单独存在 的结果必须 才能分配或使用。
整体表达式必须具有值,但Console.WriteLine
不返回值(返回类型void
)。您不能使用评估为void
的三元组。
您已尝试将三元作为独立声明使用,这是不合法的。