C# · Intermediário · Inglês · Técnico
null-forgiving operator
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 depoisExemplos
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