Maison > développement back-end > C++ > Comment gérer les incompatibilités de types Nullables dans les affectations d'opérateurs conditionnelles ?

Comment gérer les incompatibilités de types Nullables dans les affectations d'opérateurs conditionnelles ?

Susan Sarandon
Libérer: 2025-01-16 16:22:12
original
887 Les gens l'ont consulté

How to Handle Nullable Type Mismatches in Conditional Operator Assignments?

Attribuer à l'aide d'opérateurs conditionnels de type nullable

Question :

Le compilateur rencontre une erreur d'incompatibilité de type lors de l'utilisation d'opérateurs conditionnels pour attribuer une valeur à un type nullable. Par exemple, lorsque vous essayez d'attribuer un entier nullable (EmployeeNumber) à une valeur de zone de texte (employeeNumberTextBox.Text), l'erreur « Aucune conversion implicite entre « null » et « int » » se produit.

Analyse :

Les opérateurs conditionnels déterminent le type d'une expression en fonction uniquement de la valeur vrai/faux, quel que soit le type d'affectation. Dans ce cas, les valeurs null et int entraînent une ambiguïté de type.

Solution :

Pour résoudre ce problème, convertissez explicitement l'une des valeurs en nullable  :

<code class="language-csharp">EmployeeNumber =
    string.IsNullOrEmpty(employeeNumberTextBox.Text)
    ? (int?)null
    : Convert.ToInt32(employeeNumberTextBox.Text);</code>
Copier après la connexion

Alternativement, la transformation peut être appliquée à une autre valeur :

<code class="language-csharp">EmployeeNumber =
    string.IsNullOrEmpty(employeeNumberTextBox.Text)
    ? null
    : (int?)Convert.ToInt32(employeeNumberTextBox.Text);</code>
Copier après la connexion

Les deux méthodes spécifient explicitement que le type de valeur de retour de l'opérateur conditionnel est int? (entier nullable), éliminant ainsi les erreurs du compilateur. La méthode que vous choisissez dépend de votre préférence en matière de style de codage, les deux ont le même effet.

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