Acabo de notar que se puede hacer esto en C#:C#: ¿Cómo funciona esto ?: Unidad myUnit = 5;
Unit myUnit = 5;
en lugar de tener que hacer esto:
Unit myUnit = new Unit(5);
¿Alguien sabe cómo puedo lograr esto con mis propias estructuras? Eché un vistazo a la estructura Unit con reflector y me di cuenta de que se estaba utilizando el atributo TypeConverter, pero después de crear un TypeConverter personalizado para mi estructura, no pude conseguir que el compilador permitiera esta conveniente sintaxis.
Oooh siempre cosas nuevas para aprender - no puedo creer que nunca me he encontrado con esto antes de – cbp
También hay un elenco "explícito" - funciona igual, pero la persona que llama debe agregar (Unidad); generalmente se usa cuando hay un riesgo de pérdida de datos (precisión/rango/escala/etc. - por ejemplo float => int) –
Los operadores de sobrecarga son muy potentes, pero pise ligeramente cuando lo haga: es fácil hacer código que termine siendo muy impredecible para los programadores de mantenimiento. Úselo cuando sea apropiado (como en el caso de la Unidad), pero no se exceda. (¡Y siempre asegúrese de que esté bien documentado!) –