Stai scrivendo un'espressione booleana che potrebbe apparire come questa:
team.Category == "A Team" && team?.Manager?.IsVietnamVet
public class Manager
{
public bool IsVietnamVet { get; set; }
}
public class Team
{
public string Category { get; set; }
public Manager Manager { get; set; }
}
... e ottieni un errore:
Operator '&&' cannot be applied to operands of type 'bool' and 'bool?'
Qual è il modo ottimale / più pulito per gestirlo?
-
team.Category == "A Team" && (team?.Manager?.IsVietnamVet ?? false)
È davvero leggibile?
-
team.Category == "A Team" && (team?.Manager?.IsVietnamVet).GetValueOrDefault()
Potrebbe non funzionare in LINQ-to-Entities ...
-
team.Category == "A Team" && team?.Manager?.IsVietnamVet == true
Scriveresti davvero
if (condition == true)
senza alcuna esitazione?
Ci sono altre opzioni? In definitiva è meglio scrivere:
-
team.Category == "A Team" && team.Manager != null && team.Manager.IsVietnamVet