Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 19482|Resposta: 2

[Fonte] C# 8.0 pode ser um tipo de referência nula

[Copiar link]
Publicado em 26-03-2022 16:40:21 | | | |
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.





Anterior:Consultar o endereço remoto do Git do projeto atual
Próximo:ASP.NET Core (doze) front-end JS, agrupamento e compressão de CSS
Postado em 2022-3-26 20:57:32 |
Aprenda a aprender
Postado em 28-03-2022 08:23:47 |
Venha aprender
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com