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.
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.
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 :
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 :
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.
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:
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.
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!