C # casting to nullable type?
Poza regularna nudna różnica międzyCast
iAs
(Fruit)apple
- i rzuca wyjątek, jeśli nieas value
można sprawdzić przeciwko null, aby zobaczyć, czy się udało [nie rzuci wyjątku ...]Jednak czytałem @EricLippertartykuł o tym i była fajna próbka o Nullable Value Types:
<code>short? s = (short?)123; int? i = s as int?; </code>
toprzyzwyczajenie skompilować...
Nie można przekonwertować typu „krótki”? na „int?” poprzez konwersję referencyjną, konwersję boksu, konwersję rozpakowywania, konwersję zawijania lub konwersję typu zerowego
W porządku.
więc dlaczego to:
<code> short? s = (short?)123; int? i = (int?)s; </code>
Robi Skompilować? (Przeciwko wszystkim oczekiwaniom ! jaWIEDZIEĆ żes
nie jestint?
- i powinno pójść BANG, ale to nie ...)
sprawdzanie Cast tutaj powinno być znacznie bardziej zabójcze niż poprzedni przykład (który przeszedł Bang)
Źle się pytam o ten bardzo głośny temat.
Z góry dziękuję.