C # загадка: реализовать интерфейс

ОБНОВИТЬ :

Этот вопрос не домашнее задание. И, очевидно, не водонепроницаемый ... Я хотел обсудить внутреннее представление. Конечно: add1000 должен добавить 1000.

** Пожалуйста, ответьте в духе этого вопроса ... Создание этого водонепроницаемого сделает этот вопрос дольше без всякой причины. ** Вы можете превзойти чисто десятичное представлениеИзменение внутреннего представления во время выполнения ОБНОВЛЕНИЕ 2: см.

Создайте тип, который реализует этот интерфейс:

interface INumber
    {
        void add1000();
        void SetValue(decimal d);
        decimal GetValue();         
    }

так что я итерирую как можно быстрее от 0 до 10 миллиардов (американский миллиард, так до 10e9) в этом цикле for:

private static void DoSomeAdding(INumber n)
        {
            Debug.Assert(n.GetValue()==0);

            for (long i=0; i<10000000000; i += 1000)
            {
                n.add1000();
            }

            Debug.Assert(n.GetValue() == 10000000000);

        }

Таким образом, вы можете назвать это как:

DoSomeAdding(new YourNumberClass());

Ответы на вопрос(4)

Ваш ответ на вопрос