ExpertiDict

C# · Essencial · Inglês · Técnico

null-conditional operator

/nʌl kənˈdɪʃənəl ˈɑpəˌreɪtɚ/operador

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];            // null

Exemplos

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

Veja também

Todos os termos de C#