// Возвратить логическое значение true, если числовое // значение переменной num окажется четным, static public bool IsEven(double num) { return (num % 2) ==0 ? true : false;
}
// Возвратить логическое значение true, если числовое // значение переменной num окажется нечетным, static public bool IsOdd(double num) { return !IsEven(num);
}
}
class StaticClassDemo { static void Main {
Console.WriteLine("Обратная величина числа 5 равна " +
NumericFn.Reciprocal(5.0) ) ;
Console.WriteLine("Дробная часть числа 4.234 равна " +
NumericFn.FracPart(4.234));
if(NumericFn.IsEven(10))
Console.WriteLine("10 — четное число.");
if(NumericFn.IsOdd(5))
Console.WriteLine("5 — нечетное число.");
// Далее следует попытка создать экземпляр объекта класса NumericFn, // что может стать причиной появления ошибки.
// NumericFn ob = new NumericFn; // Ошибка!
}
}
Вот к какому результату приводит выполнение этой программы.
Обратная величина числа 5 равна 0.2 Дробная часть числа 4.234 равна 0.234
10 — четное число.
5 — нечетное число.
Обратите внимание на то, что последняя строка приведенной выше программы закомментирована. Класс NumericFn является статическим, и поэтому любая попытка создать объект этого класса может привести к ошибке во время компиляции. Ошибкой будет также считаться попытка сделать нестатическим член класса NumericFn.
И последнее замечание: несмотря на то, что для статического класса не допускается наличие конструктора экземпляра, у него может быть статический конструктор.
ГЛАВА 9 Перегрузка операторов
Вязыке C# допускается определять назначение оператора по отношению к создаваемому классу. Этот процесс называется
Когда оператор перегружается, ни одно из его первоначальных назначений не теряется. Он просто выполняет еще одну, новую операцию относительно конкретного объекта. Поэтому перегрузка оператора +, например, для обработки связного списка не меняет его назначение по отношению к целым числам, т.е. к их сложению.