Maison > Article > développement back-end > C# Nullable
Les variables ne peuvent pas se voir attribuer une valeur nulle en C#. Pour surmonter ce problème, une fonctionnalité spéciale est fournie par C#, qui attribue une valeur nulle à une variable appelée type nullable, et elle ne fonctionne pas avec le type référence car une valeur nulle la valeur est déjà présente, elle ne fonctionne qu'avec le type nullable qui est une instance de System.Nullable
Syntaxe :
Nullable<data_type> variable_name = null;
La syntaxe ci-dessus représente le type de données nullable en C#. Le mot-clé nullable représente le type nullable qui est une instance de System.Nullable
Il existe également un raccourci vers cette syntaxe qui implique ? opérateur ainsi que le type de données comme mentionné ci-dessous :
data_type? variable_name = null;
La syntaxe ci-dessus représente le type de données nullable en C#. Le ? Le symbole de marque représente le type nullable. Le type de données représente le type de données de la variable, où variable_name représente le nom de la variable et une valeur nulle lui est attribuée.
La valeur de null est inférieure à n'importe quelle valeur ; par conséquent, les opérateurs de comparaison ne peuvent pas être utilisés avec null, nous utilisons donc une classe statique nullable. Elle est considérée comme une classe d'assistance pour les types Nullable. La classe statique nullable fournit la méthode GetUnderlyingType. L'argument de type des types nullables est renvoyé par cette méthode.
Les types de données primitifs sont des types de valeur, par exemple des nombres. Les types de valeur sont stockés dans la pile et initialisés implicitement à leurs valeurs par défaut par le framework .NET, même s'ils ne sont pas explicitement initialisés au moment de leur définition. Par exemple, une valeur entière est initialisée à zéro par défaut ; une valeur booléenne est initialisée à false par défaut et ainsi de suite. De même, tous les types de valeur représentent des valeurs par défaut. Aucun d'entre eux ne peut représenter des valeurs nulles qui sont très importantes dans les applications de bases de données et que la représentation de null est importante dans de telles applications. Toute valeur choisie pour représenter la valeur nulle ne peut pas tomber dans la plage de valeurs autorisées pour le type de données de la valeur. Par exemple, si nous choisissons -1 pour représenter null pour un type valeur, -1 peut ne pas être la valeur autorisée pour ce type de données. Il faut également s'assurer que si une certaine valeur est choisie pour représenter la valeur nulle dans une application, cette valeur ne doit pas être utilisée ailleurs à d'autres fins dans les applications. Pour résoudre ce problème, le type nullable a été fourni par C# 2.0. La structure du système. Nullable est le suivant, qui peut être utilisé pour définir des types nullables :
Code :
namespace System { public struct Nullable : System.IComparable, System.INullableValue { public Nullable(T value); public static explicit operator T(T? value); public static implicit operator T?(T value); public T Value { get; } public bool HasValue { get; } public T GetValueOrDefault(); } }
Ici, T représente le type de valeur et la structure accepte un paramètre. Toute valeur peut être définie comme un type nullable en utilisant la syntaxe.
Syntaxe :
System.Nullable<data_type> variable_name = null;
Voici les exemples donnés ci-dessous pour C# Nullable.
Programme C# pour illustrer les types nullables lorsqu'aucune valeur n'est attribuée aux variables
Code:
using System; public class Geeks { //Defining Main Method public static void Main(string[] args) { // Nullable type is defined Nullable<int> a = null; // We use the method GetValueOrDefault(), the default value is 0 Console.WriteLine(a.GetValueOrDefault()); // Nullable type is defined int? b = null; //We use the method GetValueOrDefault(), the default value is 0 Console.WriteLine(b.GetValueOrDefault()); // non-nullable is defined using nullable type syntax int? a1 = 200; // We use the method GetValueOrDefault(), the default value is 0 but the value that is assigned to the variable is returned Console.WriteLine(a1.GetValueOrDefault()); // non-nullable is defined using nullable type syntax Nullable<int> b1 = 10; // We use the method GetValueOrDefault(), the default value is 0 but the value that is assigned to the variable is returned Console.WriteLine(b1.GetValueOrDefault()); } }
The output of the above code is shown in the snapshot below:
Output:
C# program using nullable type to illustrate the use of nullable.HasValue method.
Code:
using System; public class GFG { //Defining Main Method public static void Main() { // defining the variable m as a nullable type Nullable<int> m = 100; // the value of the variable m is checked Console.WriteLine(m.HasValue); // defining the variable n as a nullable type and assigned a value to it Nullable<int> n = null; // check the value of object Console.WriteLine(n.HasValue); } }
The output of the above code is shown in the snapshot below:
Output:
In this tutorial, we understand the concept of nullable type in C# through definition and then understand the working of nullable type in C#. Then we understand different C# programs using nullable type and their working with their output snapshots included with the programs’ results.
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!