System.Convert.ToInt vs (int)

Me di cuenta en otro post, alguien había hecho algo como:

<code>double d = 3.1415;
int i = Convert.ToInt32(Math.Floor(d));
</code>

¿Por qué usaron la función de conversión, en lugar de:

<code>double d = 3.1415;
int i = (int)d;
</code>

Que tiene un piso implícito y convertido.

Además, más preocupante, noté en un código de producción que estaba leyendo:

<code>double d = 3.1415;
float f = Convert.ToSingle(d);
</code>

Es lo mismo que

<code>float f = (float)d;
</code>

¿Están todas esas conversiones implícitas de otra manera solo en la clase Convert para completar, o sirven para un propósito? Puedo entender la necesidad de .ToString (), pero no el resto.

Respuestas a la pregunta(4)

Su respuesta a la pregunta