Maison  >  Article  >  développement back-end  >  C# NullReferenceException

C# NullReferenceException

WBOY
WBOYoriginal
2024-09-03 15:21:041005parcourir

La NullReferenceException est une exception levée par le programme lorsque nous tentons d'accéder à tout type de membre ayant une valeur nulle, ce qui signifie que lorsque nous essayons d'accéder à une variable qui ne contient aucune valeur ou une valeur nulle, l'exception Null Reference sera être jeté. Cette exception s'applique à diverses versions de .NET, .NET Core et .Net Framework. Ces variables de référence en C# correspondent tout à fait aux concepts de pointeurs pf en C. Il existe diverses situations dans lesquelles NullReferenceException se produit et il existe plusieurs façons de l'éviter ou de la résoudre.

Syntaxe :

Follow est la syntaxe standard utilisée pour l'implémentation de NullReferenceException :

public class NullReferenceException :SystemException

L'exception de référence nulle est héritée des exceptions système qui peuvent essentiellement être trouvées dans Object et dans Exception. Comme nous le savons, il s'agit de l'une des exceptions les plus courantes et il existe différentes manières de la gérer.

Comment fonctionne NullReferenceException en C# ?

Pour comprendre simplement, une exception de référence nulle est le résultat d'un événement où nous essayons d'accéder à une variable qui ne fait référence à aucun autre objet. Désormais, faire référence à une référence n’est pas un problème ici, mais lorsqu’une variable de référence ne fait référence à aucun autre objet, elle est fondamentalement traitée comme nulle. C'est là que le problème se pose lorsque le code est référencé à un point qui se termine par un null, on se retrouve alors face à une exception, nommée NullReferenceException. Il peut y avoir différents scénarios dans lesquels une exception de référence nulle est levée par le programme. Lorsque nous exécutons un programme et s'il rencontre l'exception de référence nulle, le résultat ressemblera à ceci :

Exception non gérée :
System.NullReferenceException : référence d'objet non définie sur l'instance de l'objet.

Exemples

Maintenant que nous avons compris en quoi consiste l'exception et comment elle fonctionne, passons à la démonstration appropriée de l'exception avec des exemples. Pour notre premier exemple, qui est très simple, nous avons une variable simple qui contient une valeur nulle, puis nous essaierons de travailler sur cette variable, mais étant nulle, elle lèvera l'exception de référence nulle. Le code du programme est le suivant :

Code :

using System;
public class SampleProgram {
public static void Main()     {
string name = null;
varval =name.ToString();
Console.WriteLine(val);
}
}

Explication du code : Déclaré avec l'utilisation de System, nous avons notre classe Sample qui est publique. Ensuite, nous avons notre instruction principale static void, suivie de la création d'une simple variable de chaîne nommée name et la valeur attribuée est nulle, ce qui signifie qu'aucune valeur n'est attribuée à la variable. Cette variable chaîne est importante ici, plus tard nous créons une autre variable nommée val, où nous essayons de convertir la valeur de name en chaîne. Enfin, nous avons une instruction print qui imprimera la valeur de name, qui est maintenant convertie à l'aide de ToString(). Reportez-vous à la capture d'écran ci-jointe pour la sortie :

Sortie :

C# NullReferenceException

S'il est exécuté correctement, le code générera une erreur, qui sera NullReferenceException. Et la raison sera que lorsque nous essaierons d'appeler la méthode ToString(), elle ira au nom de la variable, mais notre nom de variable n'a aucune valeur, ce qui signifie null. Et comme nous le savons, la valeur nulle ne peut pas être convertie à l'aide de ToString(). Ainsi, notre code n'imprimera qu'une erreur, ce qui signifie que le code s'exécute comme prévu.

Comme expliqué, le programme a été interrompu par une exception. Ensuite, nous allons démontrer un autre exemple simple, qui, comme expliqué, conduit à la même exception.

Code :

using System;
class SampleProgram {
static void Main() {
string val = null;
if (val.Length == 0) {
Console.WriteLine(val);
}
}
}

Explication du code : Semblable à notre premier exemple, nous avons ici notre espace de noms et notre premier appel, qui contient l'instruction principale. Ensuite, nous avons notre variable chaîne avec une valeur nulle. Ce sera la variable majeure qui conduira à notre exception attendue. Ensuite, nous avons une simple condition if dans laquelle nous vérifierons si la longueur de notre variable est nulle ou non et si elle est nulle, elle passera à l'étape suivante et imprimera la valeur. Mais le code ne passera pas à la ligne d'impression finale car il rencontrera une exception dans le if. Reportez-vous à la capture d'écran ci-jointe pour la sortie :

Sortie :

C# NullReferenceException

Ici, le résultat est identique à notre premier exemple, « Exception non gérée » car l'exception est la même, nous avons essayé d'implémenter une fonction ici mais comme expliqué, notre variable a une valeur nulle, ce qui nous conduit à une exception de référence nulle. Maintenant que nous avons vu et compris comment et pourquoi cette exception de référence nulle se produit, il est important de comprendre comment l'éviter pour un meilleur fonctionnement du programme.

How to Avoid NullReferenceException in C#?

The Null Reference Exception is not a major error, but one of the common ones and one of the basic and simple way to avoid the Null Reference Exception is to check the variable or property before moving ahead and accessing it. And a very basic way to do this is to check the variable within an if statement. We will demonstrate an example where we will avoid the occurrence of the exception and the code will move on.

Code:

using System;
class SampleProgram {
static void Main() {
string val = null;
if (val == null) {
Console.WriteLine("\n Value to the variable is null.");
}
else{
Console.WriteLine(val);
}
}
}

Output:

C# NullReferenceException

Code Explanation: Here we have our class which holds the main statement than a variable with a null value. Then we enter an if else statement, where the value of the variable is checked if it is null, the print statement will be printed and the program will terminate, if the value is not null, then it will move ahead and into else part, it will print the value. As expected our code printed that “Value to the variable is null.” because the value is null. If we try the same example with a string value, the program will proceed and the else part will be printed.

Conclusion

The NullReferenceException is encountered when we attempt to access a variable which holds a null value, it can be variable or object. The reference should not hold null value else the exception will be thrown. There are many situations where this can be seen and the simplest way to avoid the NullReferenceException is to check beforehand, before accessing the value.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:C# FileNotFoundExceptionArticle suivant:C# FileNotFoundException