ExpertiDict

C# · Intermediário · Inglês · Técnico

null-forgiving operator

/nʌl fɚˈɡɪvɪŋ ˈɑpɚˌeɪtɚ/operador

Operador ! pós-fixado que diz ao compilador que uma expressão anulável não é nula naquele ponto. Só silencia o aviso de nullable; não gera nenhuma verificação em runtime.

Onde usar

Aparece em testes e em campos inicializados por framework, como propriedades de DbSet ou de injeção, escritos como null!. Cada ! é uma promessa sua: se estiver errada, o NullReferenceException vem em runtime.

Em código

string? s = Console.ReadLine();
int n = s!.Length;   // eu garanto: não é null
string nome = null!; // inicializa depois

Exemplos

I added the null-forgiving operator, but is it really not null?

Coloquei o operador null-forgiving, mas será que não é mesmo nulo?

Remove that bang, it just hides the warning.

Tire esse ponto de exclamação, ele só esconde o aviso.

Cuidado

Não use para calar avisos sem entender a causa: prefira checar null, usar required ou inicializar o membro.

Sinônimos

bang operator

Veja também

Todos os termos de C#