Il caso 1 produce un'eccezione di disallineamento di tipo. Il caso 2 funziona come previsto. Qualcuno ha un'idea del perché? O un modo migliore per convertire da Int32 come oggetto in un Int16?Perché l'operazione di trasmissione fallisce nel caso 1 ma succede nel caso 2?
Caso 1:
var i = (Int16)(object)Int32.Parse("1");
Caso 2:
var i = (Int16)Int32.Parse("1");
vedere http://stackoverflow.com/questions/9741788/why-does-this-cast-from-short-to-int-fail e https://blogs.msdn.microsoft.com/ericlippert/2009/ 03/19/rappresentazione-e-identità/ – filhit
@filhit. grazie per le referenze eccellenti. la SO è vicina a ciò che ha causato questa domanda. I collegamenti aiutano a rispondere perché. –
@GregBogumil Perché diavolo non usi semplicemente 'Int16.Parse (" 1 ");'? – Mikanikal