C'è una differenza fondamentale qui. In un caso dici "Assumo solo che questo è un int
", e nel primo caso chiedi al lettore di darti un int
. Se il valore è già un int
, non mi aspetterei alcuna difficoltà. Tuttavia, cosa succede quando il valore è un Int64
? Lo stai trasmettendo a un int
che è lungo solo 4 byte. Potresti ricevere sorprese inaspettate in questo modo se sei fortunato . Se non lo sei, il programma continua come se nulla fosse accaduto e finisci con un valore mancante dei suoi 4 byte superiori.
Tuttavia se chiedi al lettore di darti un Int32
, vedrai che si lamenterà se ci sono dei problemi nel farlo. Potrebbe sembrare un codice di scrittura contrario creare potenzialmente eccezioni, ma in definitiva funziona a tuo favore, fidati di me. Anche se qualcosa non funziona quando non te lo aspetti, l'errore è chiaro e può essere risolto facilmente.
Se hai un valore che non riflette ciò che viene letto, potrebbe causare problemi altrove nel tuo programma e lasciarti grattando la testa sul perché.