Como C# no admite las funciones independientes, me resulta difícil encontrar un lugar para colocar las funciones de conversión. Por ejemplo, me gustaría convertir una enumeración en un número. En C++, haría la siguiente función independiente para esto:¿Dónde poner las funciones de conversión?
UINT32 ConvertToUint32(const MyEnum e);
¿Cómo puedo hacer esto elegantemente en C#? ¿Debo hacer una clase ficticia estática para mantener la función, y si es así, cómo puedo encontrar un nombre significativo para ella? ¿O debería hacer una clase parcial Convertir?
¿Alguna idea?
Gracias de antemano.
Actualización: En retrospectiva, mi ejemplo no fue muy bien elegido, ya que existe una conversión predeterminada entre enum e int. Esto sería un mejor ejemplo:
Person ConvertToPerson(const SpecialPersonsEnum e);
MyEnum e = (MyEnum) 3; o MyInt i = (Int) e; son formas aceptables de convertir entre int y enum en C#.Dicho esto, siempre pongo mis funciones de conversión en una clase de utilidad. – jle
+1 'clase parcial Convert' es una buena idea. –
Si desea una conversión de una persona enum a una clase, ** escriba un operador de conversión **. ¿Por qué perder el tiempo con un método cuando puedes escribir un operador que hace lo que quieres? –