Es extraño, pero la respuesta aceptada parece incorrecta sobre el elenco y la conversión en el sentido de que, a partir de mis pruebas y la lectura de la documentación, no debería tener en cuenta los operadores implícitos o explícitos.
Entonces, si tengo una variable de tipo objeto y la clase "en caja" tiene algunos operadores implícitos definidos, no funcionarán.
En cambio, otra forma simple, pero realmente el costo del rendimiento es lanzar antes en forma dinámica.
(int) (dinámico) myObject.
Puede probarlo en la ventana interactiva de VS.
public class Test
{
public static implicit operator int(Test v)
{
return 12;
}
}
(int)(object)new Test() //this will fail
Convert.ToInt32((object)new Test()) //this will fail
(int)(dynamic)(object)new Test() //this will pass