C # casting para o tipo anulável?
Além a diferença chata regular entreCast
eAs
(Fruit)apple
- e lança uma exceção se não éas value
pode ser verificado em relação a null para ver se foi bem-sucedido [não lançará Exception ...]No entanto eu tenho lido @EricLippertartigo sobre isso e houve uma boa amostra sobre tipos de valor anulável:
<code>short? s = (short?)123; int? i = s as int?; </code>
istonão vai compilar...
Não é possível converter o tipo "curto"? para 'int'? por meio de uma conversão de referência, conversão de boxing, conversão de unboxing, conversão de wrapping ou conversão de tipo nulo
Bem.
então por que isso:
<code> short? s = (short?)123; int? i = (int?)s; </code>
Faz Compile (Contra todas as expectativas ! EuCONHECER naquelas
não éint?
- e deve ir BANG mas não é ...
o Cast checando aqui deve ser muito mais mortal que o antigo exemplo (que foi Bang)
Eu me sinto mal perguntando sobre esse assunto muito falado.
Desde já, obrigado.