einen Fehler melden?
? 10 : null
Bei der Verwendung des verfügbaren Typs in C#ist die Typ -Konsistenz im Ausdruck sehr wichtig. Das ternäre Computercharakter (? :) Bewerten Sie die beiden Ausdrücke auf der Grundlage der Bedingung.
Hier versuchen wir, der Kabel -INT -Variable X Int und Null zuzuweisen. Dies kann zu Fehlern von Compilern führen, da zwischen diesen beiden Typen keine versteckte Umwandlung vorliegt.
<code class="language-csharp">int? x = GetBoolValue() ? 10 : null; // 错误</code>
Der wörtliche 10 ist ein int -Typ und Null ist ein leerer Typ. Es gibt keine versteckte Umwandlung zwischen den beiden, daher treten Fehler auf.
<code class="language-csharp">GetBoolValue() ? 10 : null</code>
oder wir können die leere Wortoberfläche in int ?:
konvertieren
<code class="language-csharp">int? x = GetBoolValue() ? (int?)10 : null; // 将10转换为int?</code>
<code class="language-csharp">int? x = GetBoolValue() ? 10 : (int?)null; // 将null转换为int?</code>
Das obige ist der detaillierte Inhalt vonWarum ist `? 10: null` verboten in C# ternären Operatoren mit nullbaren Typen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!