從C#果殼一個void表達式沒有價值嗎?
表達式和運算符
的表達基本上表示一個值。
...
空隙表達式
void表達式是不具有值的表達式。例如:
Console.WriteLine (1)
void表達式,因爲它沒有值,不能被用作操作數 構建更復雜的表達式:
1 + Console.WriteLine (1) // Compile-time error
- 由於空隙表達式是一個表達,它必須表示一個值。 但它如何「沒有價值」?
- 由於void表達式沒有值,是一個void表達式 聲明?
謝謝。
閱讀從埃裏克利珀答案Can a C# lambda expression ever return void?,如在評論中指出魯弗斯信用證後,我有以下問題:
是一個方法的調用總是一個表情,其值是否是該方法返回的值?
是一個void表達式總是調用返回void的方法嗎?
語句和表達式可以被認爲是語法結構,並且在類型級別上是void。所以這裏的缺點是「因爲X是一個表達式,它必須表示一個值」 - 只有當表達式不產生無效時纔是真實的。(2)只有在所有表達式都是陳述的情況下才是真實的。 – Ryan
從@Eric Lippert查看以下問題的答案:https://stackoverflow.com/questions/2029433/can-a-c-sharp-lambda-expression-ever-return-void –
@RufusL謝謝。 (1)帶'return'語句的方法總是一個表達式,其值是方法中'return'語句返回的值? (2)是一個void表達式,總是調用一個'return' void的方法嗎? – Tim