C# · Essencial · Inglês · Técnico
null-conditional operator
Operador ?. (e ?[]) que acessa um membro só se o objeto não for null; do contrário, a expressão inteira resulta em null em vez de lançar exceção.
Onde usar
Em code review, cadeias como pedido?.Cliente?.Endereco substituem vários ifs. Cuidado para não espalhar ?. por todo lado e esconder um null que deveria ser tratado como erro.
Em código
string? texto = null;
int? n = texto?.Length; // null, sem exceção
var m = texto?.ToUpper() ?? "vazio";
string[]? v = null;
var x = v?[0]; // nullExemplos
Use the null-conditional operator instead of three ifs.
Use o operador null-conditional em vez de três ifs.
The ?. returns null if the order is null.
O ?. devolve null se o pedido for null.
Cuidado
Não confunda com o ternário ?: nem com o ??; o ?. só protege o acesso a membro e produz null, não um valor padrão.
Sinônimos
Elvis operator, safe navigation