title: Multicast delegate of type Func (with return value)?
body: <p>I have the following code:</p>
  <pre class="lang-cs prettyprint-override"><code>Func&lt;string, string&gt; func1 = (param) =&gt;
  {
      Console.WriteLine(&quot;Func 1 executing&quot;);
      return &quot;Hello&quot; + param;
  };
  Func&lt;string, string&gt; func2 = (param) =&gt;
  {
      Console.WriteLine(&quot;Func 2 executing&quot;);
      return &quot;World&quot; + param;
  };
  Func&lt;string, string&gt; funcSum = func1 + func2;
  string funcResult = funcSum(&quot;!&quot;);
  Console.WriteLine(funcResult);
  </code></pre>
  <p>The output is:</p>
  <pre><code>Func 1 executing
  Func 2 executing
  World!
  </code></pre>
  <p>Inverting the sum:</p>
  <pre class="lang-cs prettyprint-override"><code>Func&lt;string, string&gt; funcSum = func2 + func1;
  </code></pre>
  <p>Gives the output:</p>
  <pre><code>Func 2 executing
  Func 1 executing
  Hello!
  </code></pre>
  <p>My initial test was done with a boolean return type, and the returned value was also always determined by the last function. Is it working as intended? Aren't we losing the return value of the other functions? If so, is there a use case in real world of those multicast delegate of functions?</p>