【发布时间】:2017-05-29 12:52:28
【问题描述】:
简而言之,来自 C#
表达式和运算符
表达式本质上表示一个值。
...
空虚表达式
void 表达式是没有值的表达式。例如:
Console.WriteLine (1)void 表达式,因为它没有值,所以不能用作操作数 构建更复杂的表达式:
1 + Console.WriteLine (1) // Compile-time error
- 由于 void 表达式是一个表达式,它必须表示一个值。 但怎么会“没有价值”呢?
- 由于 void 表达式没有值,所以 void 表达式是 声明?
谢谢。
阅读 Eric Lippert 对Can a C# lambda expression ever return void? 的回答后,正如 Rufus L 在评论中指出的那样,我有以下问题:
对方法的调用是否总是一个表达式,其值是方法返回的值?
void 表达式是否总是调用返回 void 的方法?
【问题讨论】:
-
语句和表达式可以被认为是句法结构,而在类型级别上是无效的。所以这里的缺陷是“因为 X 是一个表达式,它必须表示一个值”——这只有在表达式不产生 void 时才成立。 (2) 仅当所有表达式都是语句时才为真。
-
查看@Eric Lippert 对此问题的回答:stackoverflow.com/questions/2029433/…
-
@RufusL 谢谢。 (1) 带有
return语句的方法是否总是一个表达式,其值是方法中return语句返回的值? (2) void 表达式总是调用returnvoid 的方法? -
是的,听起来不错。除了 void 表达式不 "return void" - 它们根本不
return。但我认为这就是你的意思。 -
@RufusL 我在上一条评论(2)中提出的问题是:void 表达式是否总是调用某个返回 void 的方法?我说的不是void表达式是否返回void,而是它调用的方法是否返回void。
标签: c#