title: C# Null propagating operator / Conditional access expression & if blocks
body: <p>The <a href="https://roslyn.codeplex.com/discussions/540883" rel="noreferrer">Null propagating operator / Conditional access expression</a> coming in <a href="/questions/tagged/c%23-6.0" class="post-tag" title="show questions tagged &#39;c#-6.0&#39;" rel="tag">c#-6.0</a> looks like quite a handy feature.  But I'm curious if it will help solve the problem of checking if a child member is not null and then calling a Boolean method on said child member inside an if block:</p>
  
  <pre><code>  public class Container&lt;int&gt;{
         IEnumerable&lt;int&gt; Objects {get;set;}
    }
  
    public Container BuildContainer()
    { 
        var c = new Container();
  
        if (/* Some Random Condition */)
           c.Objects = new List&lt;int&gt;{1,2,4};
    }
  
    public void Test()
    {
        var c = BuildContainer();
  
        //Old way
        if ( null != c &amp;&amp; null != c.Objects &amp;&amp; c.Objects.Any())
           Console.Write("Container has items!");
  
  
        //C# 6 way?
        if (c?.Object?.Any())
            Console.Write("Container has items!");
    }
  </code></pre>
  
  <p>Will <code>c?.Object?.Any()</code> compile?  If the propagating operator short circuits (I assume that's the right term) to null then you have <code>if (null)</code>, which isn't valid.  </p>
  
  <p>Will the C# team address this concern or am I missing the intended use case for the null propagating operator?</p>