C # Operador de propagación nulo / Expresión de acceso condicional y bloques if
Los Operador de propagación nulo / Expresión de acceso condicional llegando c # -6.0 parece una característica bastante útil. Pero tengo curiosidad por saber si ayudará a resolver el problema de verificar si un miembro secundario no es nulo y luego llamar a un método booleano en dicho miembro secundario dentro de un bloque 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!");
}
Serác?.Object?.Any()
compilar? Si el operador de propagación cortocircuita (supongo que es el término correcto) a nulo, entonces tieneif (null)
, que no es válido.
¿El equipo de C # abordará esta inquietud o me estoy perdiendo el caso de uso previsto para el operador de propagación nulo?