main
 1namespace presentation.windows.server.domain.accounting
 2{
 3    public delegate ConversionRatio RateTable(UnitOfMeasure unitCurrency, UnitOfMeasure referenceCurrency);
 4
 5    public abstract class SimpleUnitOfMeasure : UnitOfMeasure
 6    {
 7        public double convert(double amount, UnitOfMeasure other)
 8        {
 9            return rate_table(this, other).applied_to(amount);
10        }
11
12        public abstract string pretty_print(double amount);
13
14        static RateTable rate_table = (x, y) => ConversionRatio.Default;
15
16        static public void provide_rate(RateTable current_rates)
17        {
18            rate_table = current_rates;
19        }
20    }
21}