2010-05-17 10 views

Respuesta

14

Cuando no se especifica que sea echado es un implicit cast

public static implicit operator SomeMoneyFormat(string d) 
    { 
     return new SomeMoneyFormat(d); 
    } 

Entonces € 5,00 se pasa como la cadena d

más sobre esto aquí: http://msdn.microsoft.com/en-us/library/z5z9kes2(VS.71).aspx

Además, Puedo agregar que esto solo debe hacerse cuando no hay riesgo de perder datos. Por ejemplo, la conversión de un double a un int perderá algo de precisión, por lo que es un explicit cast. De lo contrario, sería fácil lanzar por accidente y perder datos.