ホームページ >バックエンド開発 >C++ >条件付き演算子の代入で Null 許容型の不一致を処理するにはどうすればよいですか?

条件付き演算子の代入で Null 許容型の不一致を処理するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-16 16:22:12888ブラウズ

How to Handle Nullable Type Mismatches in Conditional Operator Assignments?

null 許容 型の条件演算子を使用して代入します

質問:

条件演算子を使用して null 許容の 型に値を割り当てると、コンパイラで型不一致エラーが発生します。たとえば、Null 許容整数 (EmployeeNumber) をテキスト ボックス値 (employeeNumberTextBox.Text) に割り当てようとすると、「'null' と 'int' の間に暗黙的な変換がありません」というエラーが発生します。

分析:

条件演算子は、代入の種類に関係なく、true/false 値のみに基づいて式の型を決定します。この場合、null 値と int 値により型があいまいになります。

解決策:

この問題を解決するには、値の 1 つを null 許容 に明示的に変換します:

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

または、変換を別の値に適用することもできます:

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

どちらのメソッドも、条件演算子の戻り値の型が int? (null 許容整数) であることを明示的に指定しているため、コンパイラ エラーが排除されます。 どちらの方法を選択するかは、コーディング スタイルの好みによって異なりますが、どちらの方法でも同じ効果があります。

以上が条件付き演算子の代入で Null 許容型の不一致を処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。