Opérateur de propagation N # Null / Expression d'accès conditionnel & amp; si les blocs

La Null propagation de l'opérateur /accès Conditionnel expression venir en c#-6.0 ressemble assez à une fonction bien pratique. Mais je suis curieux de savoir si il va aider à résoudre le problème de la vérification si un membre enfant n'est pas nulle, puis en appelant un Booléen sur l'enfant dit membre à l'intérieur d'un bloc si:

  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!");
  }

Sera c?.Object?.Any() compiler? Si l'opérateur de multiplication des courts-circuits (je suppose que c'est le bon terme) à null, alors vous avez if (null)ce qui n'est pas valide.

Sera l'équipe C# répondre à cette préoccupation, ou ai-je raté l'utilisation prévue cas pour le nul de la propagation de l'opérateur?

source d'informationauteur Philip Pittle