2011-12-15 11 views
12

は私が架空の構文を使用してC#での型のエイリアスを作成したいと仮定しますC#のエイリアシングのテクニック?

Currency = float; 

その後、私は離れて行くとCurrencyタイプを使用する数千のファイルを作成します。

その後、私はFCLタイプを使用することを好むことを実現:

Currency = System.Single; 

優れ、すべてのコードがまだ動作します。

...ヶ月後...

待って、私はいくつかの奇妙な丸め誤差を取得しています。ああ、その理由、System.Single only has 7 digits of precision

Currency = System.Double; 

...年後...

Ohhhh、浮動小数点が正確ではありません。:15桁にすることをアップします$0.0011/unit * 217,384 unitsを乗算すると、浮動小数点の使用にはいくつかの制限があります。そして会計士は、「会計上の不規則性」に執着する者です。問題ありません:

Currency = System.Decimal; 

...年後...

国際出願?通貨コード。うーん。 Thank you CodeProject

Currency = Money; 

...後で...

おお、パターンと実践。

Currency = ICurrency; 

このナンセンスコードはすべて中断しませんでした。

私はC#がこのレベルのencapsulationをサポートしていないことを認識しており、iの構文での復元力があります。

しかし、誰もがそのsimulatewhatpeoplehavebeentryingtoaccomplishincludingmyself)できる構文を提案することができますか?

+2

基本的にはC++/Cのtypedef –

+1

「エイリアスを使用する」について知っていると思いますか? –

+1

私は "エイリアスを使う"( "エイリアスを使って")、コードを一貫性のあるものにするのがより簡単になるようにしています...しかし、これは大きな変化のようです。使用されているタイプに関する規則(および署名)が変更されます。 –

答えて

4

usingusing Currency = System.Single;のように使用できますが、すべてのファイルで行う必要があります。しかし、変更するのは簡単ですが、アプリケーション全体でシングルを検索するよりも簡単です。

5

通貨というクラスを作成し、適切な演算子を実装(または委譲)した後、必要に応じて内部的にデータを格納するために使用するクラスを変更します。

関連する問題