Maison > développement back-end > C++ > Les types de valeur en C# peuvent-ils être comparés à Null, et si oui, comment ?

Les types de valeur en C# peuvent-ils être comparés à Null, et si oui, comment ?

Patricia Arquette
Libérer: 2025-01-16 18:20:45
original
556 Les gens l'ont consulté

Can Value Types in C# Be Compared to Null, and If So, How?

Type de valeur C# et comparaison nulle

En C#, les types valeur ne peuvent pas être attribués à null. En effet, les types valeur sont stockés sur la pile et celle-ci n'autorise pas les références nulles. Cependant, un type valeur peut être comparé à null à l’aide de l’opérateur d’égalité (==) ou de l’opérateur d’inégalité (!=).

Considérez le code suivant :

<code class="language-csharp">int x = 1;
if (x == null)
{
    Console.WriteLine("What the?");
}</code>
Copier après la connexion

Ce code ne générera pas d'erreur de compilation, même si la valeur int ne peut pas être nulle. En effet, l'opérateur d'égalité est surchargé pour permettre de comparer les types valeur aux types valeur nullables. Un type de valeur nullable est un wrapper qui peut contenir une valeur du type sous-jacent ou null.

Dans ce cas, la valeur int x est implicitement convertie en un int nullable puis comparée au littéral nul. La comparaison est toujours fausse, donc le message « Qu'est-ce que c'est ? » n'est jamais imprimé.

Cependant, si vous essayez d'attribuer une valeur nulle à un type valeur, vous obtenez une erreur de compilation :

<code class="language-csharp">int x = null; // Error CS0037: Cannot convert null to 'int' because it is a non-nullable value type</code>
Copier après la connexion

Cela est dû au fait qu'il n'y a pas de conversion implicite des types de valeur nuls vers des types de valeurs non nullables.

En résumé, les types valeur peuvent être comparés à null en utilisant les opérateurs d'égalité ou d'inégalité. Cependant, des valeurs nulles ne peuvent pas leur être attribuées. Ce comportement permet une flexibilité de codage tout en conservant l'intégrité du type valeur.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal