Antes de C# 8.0, todos os tipos de referência podiam ser nulos. Tipos de referência nula referem-se a um conjunto de características introduzidas em C# 8.0 que podem ser usadas paraMinimize a chance de seu código causar throws em tempo de execução。 Tipos de referência anuláveis incluem três recursos para ajudar a evitar essas exceções, incluindo a capacidade de marcar explicitamente tipos de referência como nulláveis:
- Análise estática otimizada do fluxo para determinar se uma variável é nula antes de ser desreferenciada.
- Atributos usados para anotar a API para que o Stream Analytics determine o estado nulo.
- Anotações de variáveis que os desenvolvedores podem usar para declarar explicitamente o estado nulo esperado de uma variável.
A análise de estado nulo e as anotações de variáveis são desativadas por padrão para projetos existentes, o que significa que todos os tipos de referência ainda são nuláveis. A partir do .NET 6, esses recursos são ativados por padrão para novos projetos.
Documentação:O login do hiperlink está visível.
O que um tipo de referência que pode ser nulo é fazerMinimize a chance de sua aplicação lançar um System.NullReferenceException em tempo de execução。
Em um projeto que estou desenvolvendo com .NET 6, crio uma propriedade Name para uma nova propriedade que me alerta com o seguinte aviso:
Ao sair do construtor, a propriedade não nulável "Name" deve conter um valor não nulo. Considere declarar a propriedade como pode ser nula.
Embora seja um aviso, é muito irritante! Como corrigir esse aviso? O valor padrão para atribuição é uma string vazia, e o código é o seguinte:
Ou seja, quando a propriedade não é atribuída manualmente, o valor padrão da propriedade é uma string vazia.
Ao usar uma variável local,O tipo é de corda? também pode gerar avisos, como mostrado na figura abaixo:
Determina se a variável é nula antes de usá-la, e se for, não execute o código abaixo, ou você acha queA variável nunca pode ser nula, pode ser usadoArgumentNullException.ThrowIfNull(assemblyFullName); Avisos também podem ser removidos! Em outras palavras, se a variável for nula, ela lançará uma exceção diretamente durante o tempo de execução!
Resumo: C# 8.0 introduziu esse recurso, e pessoalmente sinto que é para melhorar o rigor dos desenvolvedores e evitar cometer alguns erros de baixo nível.
Para mais soluções de métodos que podem ser nulas, por favor consulte:O login do hiperlink está visível.
|