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());