title: Does a void expression has no value?
body: <p>From C# in a Nutshell</p>
  
  <blockquote>
    <p><strong>Expressions and Operators</strong></p>
    
    <p>An expression essentially denotes a value.</p>
    
    <p>...</p>
    
    <p><strong>Void Expressions</strong></p>
    
    <p>A void expression is an expression that has no value. For example:</p>
  
  <pre><code>Console.WriteLine (1)
  </code></pre>
    
    <p>A void expression, since it has no value, cannot be used as an operand
    to build more complex expressions:</p>
  
  <pre><code>1 + Console.WriteLine (1)      // Compile-time error
  </code></pre>
  </blockquote>
  
  <ol>
  <li>Since a void expression is an expression, it must denote a value.
  But how can it "has no value"?</li>
  <li>Since a void expression has no value, is a void expression a
  statement?</li>
  </ol>
  
  <p>Thanks.</p>
  
  <hr>
  
  <p>After reading the answer from Eric Lippert to <a href="https://stackoverflow.com/questions/2029433/can-a-c-sharp-lambda-expression-ever-return-void">Can a C# lambda expression ever return void?</a>, as pointed out by Rufus L in a comment, I have the following questions:</p>
  
  <ul>
  <li><p>Is a call to a method always an expression, whose value is the value returned by the method? </p></li>
  <li><p>is a void expression always an invocation of a method which returns void?</p></li>
  </ul>