Maison > Article > développement back-end > Chaîne nullable C#
En C#, il existe deux types de variables, les types valeur et les types référence. Les variables de type valeur ne peuvent pas être affectées à null, alors que nous pouvons attribuer null aux variables de type référence. Comme la chaîne est un type référence, elle peut être nulle. Dans cette rubrique, nous allons découvrir la chaîne nullable C#.
Pour attribuer null à un type valeur, nous devons utiliser Nullable
Syntaxe avec explication
La syntaxe pour attribuer null à une variable chaîne est la suivante :
string str = null;
Ici, str est une variable de type chaîne, et « null » est le mot-clé utilisé pour spécifier la valeur nulle. Dans l'instruction ci-dessus, nous attribuons directement null à la chaîne car il s'agit d'un type de référence et peut contenir une valeur nulle.
Nullable
Nullable<dataType> variableName = null;
Une autre façon d'utiliser le type Nullable est la suivante :
dataType? variableName = null;
Le dataType correspond aux deux instructions ci-dessus et correspond à n'importe quel type de données de type valeur, et variableName est le nom défini par l'utilisateur donné à la variable.
Le type Nullable en C# attribue des valeurs nulles aux variables de type valeur telles que le type int, float, bool, etc., car elles ne peuvent pas stocker de valeurs nulles. D'un autre côté, nous ne pouvons pas utiliser nullable avec une chaîne ou toute autre variable de type référence car elle peut stocker directement une valeur nulle.
Un type nullable n'est rien d'autre qu'une instance d'une structure System.Nullable
//l'instruction ci-dessous est valide car nous pouvons stocker null dans nullable de bool
Nullable<bool> boolVal = null;
//l'instruction ci-dessous n'est pas valide car nous ne pouvons pas stocker null dans une variable de type bool
bool boolVal = null;
Lorsque nous utilisons l'instruction ci-dessus, nous obtiendrons une erreur disant : « Impossible de convertir null en bool car il s'agit d'un type de valeur non nullable. »
Une autre façon de créer un type nullable consiste à utiliser l'opérateur « ? », comme indiqué ci-dessous :
bool? boolVal = null;
Maintenant, pour accéder à la valeur d'un type nullable, nous devons utiliser la méthode GetValueOrDefault(). Avec l'aide de cette méthode, nous obtiendrons la valeur attribuée d'origine si la valeur n'est pas nulle. En revanche, si la valeur est nulle, nous obtiendrons la valeur par défaut de zéro.
En dehors de cela, nous pouvons utiliser Nullable.HasValue pour vérifier si l'objet a reçu une valeur ou non. Si l'objet a reçu une valeur, il retournera vrai si l'objet ne contient aucune valeur.
Nous ne pouvons pas utiliser le type nullable avec « var », et nous ne pouvons pas avoir le type nullable imbriqué ; cela nous donnera une erreur de compilation.
Maintenant, parlons de la chaîne nulle en C#. Nous pouvons directement attribuer null à une chaîne en C# et attribuer une chaîne avec 'string. Champ vide en lecture seule, qui indique que la chaîne est vide.
Nous ne pouvons appeler aucune méthode sur la chaîne nulle et ne pouvons utiliser aucune propriété de chaîne sur la chaîne nulle, alors que nous pouvons faire la même chose avec des chaînes vides. Par exemple, si nous vérifions la longueur d'une chaîne vide à l'aide d'une chaîne. Propriété length, nous obtiendrons le résultat à zéro, alors que si nous vérifions la longueur d'une chaîne nulle, nous obtiendrons une exception d'exécution indiquant « System.NullReferenceException : la référence d'objet n'est pas définie sur une instance d'un objet. Nous obtiendrons la même exception lorsque nous essaierons d’appeler une méthode de chaîne sur une chaîne nulle. En effet, une chaîne nulle n'est pas une instance d'un système. Chaîne. Nous pouvons comprendre cela à l'aide des déclarations suivantes :
Exemple de chaîne vide :
string str = string.Empty; int a = str.Length; //the result of this statement will be zero
Exemple de chaîne nulle :
string str = null; int a = str.Length; //this statement will give NullReferenceException
Différents exemples sont mentionnés ci-dessous :
Exemple montrant comment créer un type nullable.
Code :
using System; namespace ConsoleApp4 { public class Program { public static void Main() { try { //defining nullable type for int Nullable<int> intVal1 = null; int result1; Nullable<int> intVal2 = 53; int result2; //using GetValueOrDefault() //to get value from nullable type result1 = intVal1.GetValueOrDefault(); result2 = intVal2.GetValueOrDefault(); Console.WriteLine("Integer having null: {0}", result1); Console.WriteLine("Integer having value: {0}", result2); } catch(Exception exception) { Console.WriteLine(exception.Message); Console.ReadLine(); } Console.ReadLine(); } } }
Sortie :
Par exemple, il crée un type nullable à l'aide de l'opérateur '?' et vérifie s'il contient ou non une valeur à l'aide de HasValue.
Code :
using System; public class Program { public static void Main() { try { //defining nullable type //using '?' operator int? intVal1 = null; bool result1; int? intVal2 = 53; bool result2; //using HasValue to check // if the object has been assigned a value or not result1 = intVal1.HasValue; result2 = intVal2.HasValue; Console.WriteLine("Integer having null: {0}", result1); Console.WriteLine("Integer having value: {0}", result2); } catch (Exception exception) { Console.WriteLine(exception.Message); Console.ReadLine(); } Console.ReadLine(); } }
Sortie :
Exemple pour vérifier si une chaîne est nulle, vide ou contient une valeur à l'aide de la méthode IsNullOrEmpty().
Code :
using System; public class Program { public static void Main() { string str1 = null; string str2 = string.Empty; string str3 = "Learning C#"; Console.WriteLine("str1 is null or empty: {0}", string.IsNullOrEmpty(str1)); Console.WriteLine("str2 is null or empty: {0}", string.IsNullOrEmpty(str2)); Console.WriteLine("str3 is null or empty: {0}", string.IsNullOrEmpty(str3)); Console.ReadLine(); } }
Sortie :
En C#, les variables de type valeur comme les variables de type int, float, bool, double, etc., ne peuvent pas stocker de valeur nulle, alors que les variables de type référence comme string peuvent stocker une valeur nulle. Pour stocker une valeur nulle dans des variables de type valeur, nous pouvons utiliser Nullable
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!