Странно, но принятый ответ кажется неверным в отношении приведения и преобразования в том смысле, что из моих тестов и чтения документации тоже не следует принимать во внимание неявные или явные операторы.
Итак, если у меня есть переменная типа object, а у «коробочного» класса есть определенные неявные операторы, они не будут работать.
Вместо этого еще один простой способ, но на самом деле снижение производительности - это приведение в динамическом режиме.
(INT) (динамическая) MyObject.
Вы можете попробовать это в Интерактивном окне 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