Если вы хотите, чтобы это была операция explcit, вам нужно написать явный оператор приведения, например, так:
public static explicit operator MyTypeOne(MyTypeTwo i)
{
// code to convert from MyTypeTwo to MyTypeOne
}
Затем вы можете использовать его так:
MyTypeOne a = new MyTypeOne();
MyTypeTwo b = (MyTypeTwo)a;
Я бы спросил, хотите ли вы на самом деле привести один тип к другому, или же вы хотите вместо этого преобразовать. Я бы сказал, что вам следует избегать написания операторов приведения для преобразований, если вы просто стремитесь использовать хороший синтаксис:)
Кроме того, в целом рекомендуется не использовать неявные приведения, поскольку они допускают разговоры непреднамеренного типа. Из документации MSDN по неявным :
Однако, потому что неявные преобразования
может произойти без программиста
указав их, следует позаботиться о
предотвратить неприятные сюрпризы. В
общие, неявные операторы преобразования
никогда не должны бросать исключения и
никогда не теряйте информацию, чтобы они
можно безопасно использовать без
осведомленность программиста.