Passer au contenu du pied de page
.NET AIDE

C# Null Coalescing (Comment cela fonctionne pour les développeurs)

L'opérateur de coalescence nulle ?? évalue l'opérande de droite et renvoie son résultat si l'opérande de gauche est une référence nulle ; sinon, il renvoie la valeur de son opérande gauche. Si l'opérande de gauche évalue à un type de valeur non nullable, l'opérateur de coalescence nulle (??) n'évalue pas son opérande à droite. L'opérateur d'affectation ??= est une affectation de coalescence nulle qui assigne la valeur de son opérande droit à son opérande gauche uniquement lorsque l'opérande gauche évalue à une valeur de type nullable. Si l'opérande du côté gauche évalue à une valeur non nulle, l'opérateur d'affectation de coalescence nulle (??=) n'évalue pas son opérande de droite. L'opérateur de coalescence nulle est similaire à l'opérateur ternaire.

En C#, l'opérateur de coalescence nulle (??) est un opérateur binaire. Un opérateur qui agit sur deux opérandes est appelé un opérateur binaire. Lors de l'utilisation de l'opérateur de coalescence nulle, deux opérandes sont requis, et l'opérateur évalue chaque opérande pour déterminer le résultat. Nous allons maintenant voir l'utilisation des opérateurs de coalescence nulle et conditionnelle nulle en C# ci-dessous.

Comment utiliser les Types de Valeur de Coalescence Nulle en C

  1. Créez un nouveau projet C#.
  2. Assurez-vous que la version appropriée est installée.
  3. Utilisez l'opérateur de coalescence nulle ??.
  4. Vérifiez les types de valeurs ou de références d'objet en fonction de l'exigence.
  5. Exécutez le code.

Coalescence Nulle en C#

Les valeurs nulles en C# sont gérées par défaut grâce à l'opérateur de coalescence nulle (??), qui est l'idée de coalescence utilisée pour gérer ces valeurs lorsqu'on manipule des types ou des expressions nullable pouvant donner un résultat nul.

Syntaxe

Voici la syntaxe pour l'opérateur de coalescence nulle :

result = expression1 ?? expression2;
result = expression1 ?? expression2;
result = If(expression1, expression2)
$vbLabelText   $csharpLabel
  • expression1 : Cette expression pourrait produire une valeur nulle.
  • expression2 : Si expression1 est nulle, voici la valeur par défaut ou l'expression de substitution à utiliser.
  • résultat : La variable tenant le résultat de l'opération de coalescence.

L'opérateur de coalescence nulle offre une méthode condensée d'assigner une valeur par défaut lors de la manipulation de types nullables, dont le principal objectif est de simplifier le code et de gérer efficacement les données nulles.

Avantages

  • Concision : Gère les vérifications de nullité sans nécessiter d'instructions conditionnelles complexes ou d'opérateurs ternaires.
  • Lisibilité du code : Améliorée en déclarant explicitement qu'une valeur par défaut serait fournie si null est retourné.

Il est crucial de s'assurer que les types d'expression comparés correspondent ou sont compatibles avant d'utiliser l'opérateur de coalescence nulle.

Bien que pratique, l'utilisation excessive de l'opérateur peut rendre le code plus difficile à comprendre. Utilisez-le avec parcimonie lorsqu'il améliore la clarté du code.

Lors du travail avec des types nullables ou des scénarios nécessitant des valeurs par défaut, l'opérateur de coalescence nulle (??) en C# est un outil efficace pour gérer les valeurs nulles et peut aider à écrire un code plus concis et compréhensible.

L'opérateur de coalescence nulle ?? possède les propriétés liées au type suivantes :

Inférence de Type du Résultat

Si expressions 1 et 2 ont le même type comme illustré dans le code ci-dessous, le type de résultat de l'opérateur de coalescence nulle est le même que ces opérandes.

int? Value = null;
int result = Value ?? 10;
int? Value = null;
int result = Value ?? 10;
Dim Value? As Integer = Nothing
Dim result As Integer = If(Value, 10)
$vbLabelText   $csharpLabel

Compatibilité de Type

Si expressions 1 et 2 ont des types distincts mais que l'un peut être converti implicitement en l'autre, le type de résultat est le type auquel les deux expressions peuvent être converties implicitement.

double? value = null;
int result = (int)(value ?? 5.5);
double? value = null;
int result = (int)(value ?? 5.5);
Imports System

Dim value? As Double = Nothing
Dim result As Integer = CInt(Math.Truncate(If(value, 5.5)))
$vbLabelText   $csharpLabel

Promotion de Type

Si les types d'expressions 1 et 2 ne peuvent pas être convertis implicitement, le type de résultat sera choisi en suivant les règles de promotion de type de C#.

int? value = null;
long result = value ?? 100L;
int? value = null;
long result = value ?? 100L;
Dim value? As Integer = Nothing
Dim result As Long = If(value, 100L)
$vbLabelText   $csharpLabel

Par conséquent, les types des opérandes impliqués et les règles de conversion de type C# dictent le type de variable ou d'expression qui détient le résultat de l'opérateur de coalescence nulle (??). Pour garantir la gestion correcte des types et des valeurs lors de l'emploi de l'opérateur de coalescence nulle, il est crucial de prendre en compte la compatibilité et les conversions de type probables.

Coalescence dans IronPDF

Installer IronPDF

Pour installer la bibliothèque IronPDF, entrez le code suivant dans le Gestionnaire de Paquets :

Install-Package IronPdf

C# Null Coalescing (Comment Cela Fonctionne Pour les Développeurs) : Figure 1 - Installer IronPDF

Alternativement, vous pouvez utiliser le Gestionnaire de Paquets NuGet pour rechercher le package "IronPDF". Vous pouvez choisir et télécharger le package nécessaire parmi cette liste de tous les packages NuGet liés à IronPDF.

C# Null Coalescing (Comment Cela Fonctionne Pour les Développeurs) : Figure 2 - Gestionnaire de Paquets NuGet

Créer un PDF avec Coalescence Nulle

Une bibliothèque C# appelée IronPDF est utilisée pour créer et travailler avec des documents PDF. La bibliothèque offre des fonctionnalités pour travailler avec les PDFs, comme le formatage, le traitement de texte et la gestion des images. "Coalescence nulle" n'est pas une méthode ou fonctionnalité exclusive à IronPDF ; plutôt, c'est une fonctionnalité de langage plutôt qu'une opération spécifique à une bibliothèque.

Cependant, si vous travaillez avec IronPDF ou toute autre bibliothèque dans votre code C#, vous pouvez utiliser les opérateurs de coalescence nulle (??) fournis par le langage C#.

Pour gérer les situations nulles ou fournir des valeurs par défaut, par exemple, lors du travail avec des objets IronPDF, des types de valeurs nullable ou des propriétés pouvant retourner null, vous pouvez utiliser l'opérateur de coalescence nulle.

L'exemple suivant montre comment l'opérateur de coalescence nulle peut être utilisé avec IronPDF :

using IronPdf;
using IronPdf.Pages;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int? x = null;

            // Use the null-coalescing operator to provide a default value if x is null
            var outputstr = $@"square of <b>{x}</b> is <b>{Math.Sqrt(x ?? 30)}</b>";

            // Render the HTML string as a PDF using IronPDF
            var pdfcreate = ChromePdfRenderer.StaticRenderHtmlAsPdf(outputstr);

            // Save the generated PDF to the file system
            pdfcreate.SaveAs("demo.pdf");

            // Wait for a key press to prevent the console from closing immediately
            Console.ReadKey();
        }
    }
}
using IronPdf;
using IronPdf.Pages;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int? x = null;

            // Use the null-coalescing operator to provide a default value if x is null
            var outputstr = $@"square of <b>{x}</b> is <b>{Math.Sqrt(x ?? 30)}</b>";

            // Render the HTML string as a PDF using IronPDF
            var pdfcreate = ChromePdfRenderer.StaticRenderHtmlAsPdf(outputstr);

            // Save the generated PDF to the file system
            pdfcreate.SaveAs("demo.pdf");

            // Wait for a key press to prevent the console from closing immediately
            Console.ReadKey();
        }
    }
}
Imports IronPdf
Imports IronPdf.Pages

Namespace ConsoleApp1
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			Dim x? As Integer = Nothing

			' Use the null-coalescing operator to provide a default value if x is null
			Dim outputstr = $"square of <b>{x}</b> is <b>{Math.Sqrt(If(x, 30))}</b>"

			' Render the HTML string as a PDF using IronPDF
			Dim pdfcreate = ChromePdfRenderer.StaticRenderHtmlAsPdf(outputstr)

			' Save the generated PDF to the file system
			pdfcreate.SaveAs("demo.pdf")

			' Wait for a key press to prevent the console from closing immediately
			Console.ReadKey()
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Rappelez-vous qu'IronPDF (ou toute bibliothèque) ne fournit pas une fonctionnalité spéciale ou méthode pour gérer les opérateurs conditionnels de nullité ; plutôt, l'utilisation de l'opérateur de coalescence nulle est basée sur les caractéristiques générales du langage C# et les concepts pour gérer un opérateur conditionnel de nullité. Pour en savoir plus sur les fonctionnalités et capacités d'IronPDF, rendez-vous sur les Démos IronPDF.

Résultat :

C# Null Coalescing (Comment Cela Fonctionne Pour les Développeurs) : Figure 3 - Résultat de l'Exemple Précédent

Conclusion

En résumé, l'opérateur de coalescence nulle de C# (??) est une fonctionnalité utile qui facilite et rend plus efficaces la gestion des valeurs nulles dans les expressions et les affectations. Cet opérateur simplifie le code en fournissant aux développeurs un moyen clair de gérer les scénarios dans lesquels une valeur pourrait être nulle. Cela permet aux développeurs de spécifier des valeurs par défaut ou d'exécuter une logique alternative avec facilité. Son adaptabilité rend le code plus épuré et efficace, simplifiant les tests de nullité et améliorant la lisibilité.

IronPDF offre une licence perpétuelle, des options de mise à niveau, un an de maintenance logicielle, et une garantie de remboursement de trente jours, toutes incluses dans le package Lite $799. Les utilisateurs ont trente jours pour évaluer le produit dans des environnements d'application réels pendant la période d'essai avec filigrane. Cliquez sur le Licenses IronPDF fourni pour en savoir plus sur le coût, la licence et la version d'essai d'IronPDF. Pour en savoir plus sur les produits Iron Software, consultez le site web d'Iron Software.

Questions Fréquemment Posées

Comment l'opérateur de coalescence des nuls améliore-t-il la lisibilité du code en C#?

L'opérateur de coalescence des nuls `??` en C# améliore la lisibilité du code en simplifiant les vérifications de nullité et en fournissant un moyen concis d'assigner des valeurs par défaut lorsqu'un type nullable est rencontré.

Quel est le but de l'opérateur d'assignation par coalescence des nuls en C#?

L'opérateur d'assignation par coalescence des nuls `??=` assigne la valeur de son opérande droit à son opérande gauche uniquement si l'opérande gauche est nul, ce qui permet un code simplifié lorsque l'on traite des types nullable.

Pouvez-vous fournir un exemple d'utilisation de l'opérateur de coalescence des nuls dans une application PDF en C#?

Dans une application PDF C# utilisant IronPDF, vous pouvez utiliser l'opérateur de coalescence des nuls pour assigner un nom de fichier par défaut si l'utilisateur ne le spécifie pas: string pdfName = userInputFileName ?? "default.pdf";.

Quels sont les pièges courants lors de l'utilisation de l'opérateur de coalescence des nuls?

Un piège commun est de ne pas s'assurer de la compatibilité des types entre les opérandes, ce qui peut entraîner des erreurs de conversion de type. Il est crucial de s'assurer que les deux opérandes sont de types compatibles lors de l'utilisation de l'opérateur de coalescence des nuls.

Comment l'opérateur de coalescence des nuls se rapporte-t-il à la compatibilité des types en C#?

L'opérateur de coalescence des nuls exige que les deux opérandes soient de types compatibles. Si ce n'est pas le cas, C# applique des règles de promotion des types pour déterminer le type de résultat, ce qui peut entraîner un comportement inattendu si ce n'est pas soigneusement géré.

Pourquoi l'opérateur de coalescence des nuls est-il bénéfique pour les développeurs traitant des types nullable?

L'opérateur de coalescence des nuls est bénéfique car il permet aux développeurs de gérer efficacement les types nullable en fournissant des valeurs par défaut, réduisant ainsi le besoin de logique conditionnelle verbeuse.

Comment les développeurs peuvent-ils utiliser l'opérateur de coalescence des nuls pour gérer les valeurs nulles dans les bibliothèques de code C#?

Les développeurs peuvent utiliser l'opérateur de coalescence des nuls dans les bibliothèques de code C# pour assigner des valeurs par défaut lorsqu'une valeur donnée pourrait être nulle, garantissant que l'application continue de fonctionner sans exceptions de référence nulles.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite