Versione: Visual Studio Professionale 2013 Update 4
Corporatura param: Preferisco a 32 bit è verobreve + corto! = Corto?
Non capisco l'errore nel seguente codice C#:
short iCount = 20;
short iValue = iCount + (short)1;
L'aggiunta di un breve a un int colato ad una breve produce il seguente errore:
Cannot implicitly convert type 'int' to 'short'. An explicit conversion exists (are you missing a cast?)
l'errore precedente, visto anche nel caso che segue, è perfettamente valido qui:
short iCount = 20;
short iValue = iCount + 1;
La seguente soluzione alternativa rimuove l'errore:
short iCount = 20;
short iValue = (short)(iCount + 1);
Così Inoltre nella forma "corta + Int32 costante" a quanto pare funziona e il risultato è Int32, che deve essere gettato a breve.
Esiste una spiegazione del perché il primo esempio di codice fallisce o si tratta di un bug del compilatore? (che non riesco a credere dopo 4 aggiornamenti)
Dai un'occhiata a questo [risposta] (http://stackoverflow.com/questions/7504837/why-is-my-addition-of-2-shorts-causing-a-casting-compile-error-due- to-ints) – trebor
[correlati] (http://stackoverflow.com/a/3080381/335858) – dasblinkenlight
[correlati] (http://stackoverflow.com/questions/11853602/c-sharp-does-not-let- me-sum-two-shorts-to-a-short) – weston