C # -Umwandlung in einen nullfähigen Typ?
Darüber hinaus der regelmäßige langweilige Unterschied zwischenCast
undAs
(Fruit)apple
- und es löst eine Ausnahme aus, wenn es nicht istas value
kann mit null verglichen werden, um zu sehen, ob dies erfolgreich war. [Ausnahme wird nicht ausgelöst ...]Allerdings habe ich @ EricLippert gelesenArtikel dazu und es gab ein schönes Beispiel über Nullable Value Types:
<code>short? s = (short?)123; int? i = s as int?; </code>
dieseGewohnheit kompilieren...
Typ 'short?' Kann nicht konvertiert werden zu 'int?' über eine Referenzkonvertierung, Boxing-Konvertierung, Unboxing-Konvertierung, Wrapping-Konvertierung oder Null-Typ-Konvertierung
Fein.
also warum das:
<code> short? s = (short?)123; int? i = (int?)s; </code>
Tut Kompilieren? (Gegen ALLE Erwartungen ! ichKENNT Dass
ist nichtint?
- und es sollte knallen, aber es ist nicht ...)
Die Cast-Überprüfung hier sollte viel tödlicher sein als das vorherige Beispiel (das Bang ging).
Es tut mir leid, nach diesem viel diskutierten Thema zu fragen.
Danke im Voraus.