Il punto centrale di un cast esplicito a dire che "mi assumo la responsabilità per il problema, basta farlo".
Nel tuo caso banale, sarebbe forse facile per il compilatore per capire che il valore non si adatterebbe in un Int32, e quindi produrre il vostro avviso.
Tuttavia, che dire di questo:
Int64 x = CallSomeMethod();
Int32 y = (Int32)x;
come può avvertire di questo? Nel caso in cui:
- cercare di capire che tipo di gamma potrebbe restituire il valore da CallSomeMethod?
- avvertire sempre? (Allora quale sarebbe il punto di essere?)
Il meglio che puoi sperare è quello di avere un controllo runtime, o simili, il compilatore non si può impedire da tutto ciò che poteva andare storto.
fonte
2010-02-25 15:06:14
Non è il fatto che devi usare un avvertimento di cast esplicito sufficiente quando scrivi il codice?Il cast esplicito di solito dice al compilatore "Ehi, so cosa sto facendo." – Joey
Abbiamo del codice che sta facendo alcuni cast espliciti che causano la perdita di dati. Abbiamo bisogno di ripulirlo. Speravo che esistesse un'opzione di compilazione che potremmo impostare per aiutarci a trovare questi casi. C++ ha un avvertimento per questo; Pensavo che C# potesse avere qualcosa. – HBFan