"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como prevenir e lidar com o NullReferenceExceptions em C#?

Como prevenir e lidar com o NullReferenceExceptions em C#?

Postado em 2025-04-18
Navegar:939

How Can I Prevent and Handle NullReferenceExceptions in C#?

O que é NullReferenceException?

NullReferenceException é uma exceção de tempo de execução em C# que ocorre quando você tenta acessar os membros de um objeto vazio. Isso pode acontecer quando:

  • tente chamar o método de um objeto vazio.
  • tente acessar as propriedades de um objeto vazio.
  • tente desreferenciar um ponteiro nulo.

Como resolvê -lo?

Existem várias maneiras de resolver o nullReferenceException:

  • Verifique se há valores vazios antes de acessar os membros. sempre verifique se o objeto está vazio antes de acessar qualquer membro do objeto. Você pode usar a instrução IF, conforme mostrado no exemplo a seguir:
if (object != null)
{
    // 访问对象的成员。
}
  • use o operador de mesclagem vazio. O operador de mesclagem vazio (??) permite especificar o valor padrão a ser usado se o objeto estiver vazio. Por exemplo, o código a seguir retorna o valor da propriedade Name se o objeto não estiver vazio; Se o objeto estiver vazio, ele retorna "desconhecido":
string name = object?.Name ?? "Unknown";
  • use o operador de condição vazia. Os operadores de condição vazia (?. E? []) Permitem acessar os membros de um objeto sem verificar os valores nulos de antemão. Por exemplo, o código a seguir retorna o valor da propriedade Name se o objeto não estiver vazio; Se o objeto estiver vazio, ele retornará nulo:
string name = object?.Name;
  • use o bloco Try/Catch. Você também pode usar o bloco de tentativa/captura para lidar com o NullReferenceExceptions. Por exemplo, o código a seguir processará o NullReferenceException e imprimirá uma mensagem para o console:
try
{
    // 访问对象的成员。
}
catch (NullReferenceException ex)
{
    Console.WriteLine("NullReferenceException 发生。");
}
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3