Maison >développement back-end >C++ >Comment gérer les incompatibilités de types Nullables dans les affectations d'opérateurs conditionnelles ?
Attribuer à l'aide d'opérateurs conditionnels de type
Question :
Le compilateur rencontre une erreur d'incompatibilité de type lors de l'utilisation d'opérateurs conditionnels pour attribuer une valeur à un type
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>
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>
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!