C # Нулевой распространяющий оператор / Условное выражение доступа и блоки if

The Нераспространяющийся оператор / Условное выражение доступа приходит в C # -6,0 выглядит довольно удобной функцией. Но мне любопытно, поможет ли это решить проблему проверки, не является ли дочерний элемент не нулевым, и затем вызова логического метода для указанного дочернего элемента в блоке if:

  public class Container<int>{
       IEnumerable<int> Objects {get;set;}
  }

  public Container BuildContainer()
  { 
      var c = new Container();

      if (/* Some Random Condition */)
         c.Objects = new List<int>{1,2,4};
  }

  public void Test()
  {
      var c = BuildContainer();

      //Old way
      if ( null != c && null != c.Objects && c.Objects.Any())
         Console.Write("Container has items!");


      //C# 6 way?
      if (c?.Object?.Any())
          Console.Write("Container has items!");
  }

Будетc?.Object?.Any() скомпилировать? Если распространяющиеся операторы короткого замыкания (я полагаю, это правильный термин) к нулю, то у вас есif (null), что недействительно.

Решит ли команда C # эту проблему или я пропустил предполагаемый вариант использования для оператора с нулевым распространением?

Ответы на вопрос(2)

Ваш ответ на вопрос