다음과 같은 부울 표현식을 작성 중입니다.
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; }
}
... 오류가 발생합니다.
'bo &'연산자는 'bool'및 'bool?'유형의 피연산자에 적용 할 수 없습니다.
그것을 처리하는 가장 최적의 방법은 무엇입니까?
team.Category == "A Team" && (team?.Manager?.IsVietnamVet ?? false)정말 읽을 수 있습니까?
team.Category == "A Team" && (team?.Manager?.IsVietnamVet).GetValueOrDefault()LINQ-to-Entities에서는 작동하지 않을 수 있습니다 ...
team.Category == "A Team" && team?.Manager?.IsVietnamVet == trueif (condition == true)망설임없이 쓰시겠습니까 ?
다른 옵션이 있습니까? 작성하는 것이 궁극적으로 더 낫습니까?
team.Category == "A Team" && team.Manager != null && team.Manager.IsVietnamVet
team.Manager?.IsVietnamVet. 즉 team, 이후 에는 null 조건부 여야 null합니다.
nullableBool == true기본적으로 테스트 중입니다 nullableBool != false && nullableBool != null(이 두 번째 부분은 유용 하므로 불필요한 것은 아닙니다)
nullableBool == true래퍼를 만들지 않으면 사용하기 시작했습니다 . == true@Flater가 언급했듯이 일반 부울을 사용할 때 일반적으로 쓰지 않기 때문에 읽을 수 있으므로 변수가 nullable임을 제안합니다. 또한 @Fabio에서 언급 한 것처럼 여러 null 조건을 사용하지 않기 때문에 LINQ 가독성이 향상됩니다.