2011-12-15 17 views
12

asume que quiero crear un alias de un tipo en C# utilizando una sintaxis hipotética:Técnicas para aliasing en C#?

Currency = float; 

Entonces me voy y crear unos pocos miles de archivos que utilizan Currency tipo.

Entonces me doy cuenta de que yo prefiero usar tipos FCL:

Currency = System.Single; 

excelente, todo el código todavía funciona.

... meses más tarde ...

esperar, soy conseguir algunos errores de redondeo extraños. Oh, es por eso, System.Single only has 7 digits of precision. Que permite que hasta 15 dígitos:

Currency = System.Double; 

... años después ...

Ohhhh, punto flotante no es exacta; multiplicar $0.0011/unit * 217,384 units expone algunas limitaciones del uso de coma flotante. Y los contadores son rigurosos contra las "irregularidades contables". No hay problema:

Currency = System.Decimal; 

... años después ...

solicitudes internacionales? Códigos de moneda. Hmmmm Thank you CodeProject:

Currency = Money; 

... más tarde ...

OOO, patrones y prácticas. Ofusquemos algo de ese código:

Currency = ICurrency; 

Y durante todo este código sin sentido no se rompió.

sé C# no es compatible con este nivel de encapsulation y resilency con la sintaxis que hice.

Pero puede alguien sugerir una sintaxis que puede simulatewhatpeoplehavebeentryingtoaccomplish (includingmyself)?

+2

básicamente un typedef en C++/C –

+1

Supongo que sabes sobre "usar alias" ...? –

+1

Uso "alias de tipo" ("uso de alias") para hacer que el código sea más fácil de seguir ... sin embargo, esto suena como un cambio radical. Las reglas (y la firma) sobre el tipo que se utiliza están alteradas. –

Respuesta

4

Puede usar using como lo siguiente: using Currency = System.Single;, pero debe hacerlo en cada archivo. Pero aún más fácil de cambiar, que buscar solo en la aplicación completa.

5

Cree una clase llamada Moneda e implemente (o delegue) los operadores apropiados, luego simplemente cambie la clase utilizada para almacenar los datos internamente cuando lo desee.