На этом шаге мы рассмотрим небольшой пример использования таких методов.
В тексте ниже представлена программа, в которой описываются и используются достаточно несложные статические методы.
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace pr65_1 { class Program { // Статический метод для отображения текста, // переданного аргументом методу: static void show(string txt) { Console.WriteLine(txt); } // Статический метод для вычисления факториала числа, // переданного аргументом методу: static int factorial(int n) { // Локальная переменная: int s = 1; // Вычисление произведения: for (int k = 1; k <= n; k++) { // Умножение произведения на число: s *= k; } // Результат метода: return s; } // Статический метод для возведения числа в степень. // Число и степень передаются аргументами методу: static double power(double x, int n) { // Локальная переменная: double s = 1; // Вычисление результата (число в степени): for (int k = 1; k <= n; k++) { // Текущее значение умножается на число: s *= x; } // Результат метода: return s; } // Главный метод программы: static void Main() { // Вызываем статический метод для отображения // сообщения в консольном окне: show("Начинаем вычисления:"); int m = 5; // Целочисленные переменные double z = 3, num; // Действительные переменные // Вычисление факториала числа: show(m + "!=" + factorial(m)); // Число в степени: num = power(z, m); // Отображение сообщения вызовом статического метода: show(z + " в степени " + m + ": " + num); // Задержка: Console.ReadLine(); } } }
Результат выполнения программы такой (рисунок 1).
Рис.1. Результат работы приложения
В этой программе, кроме главного метода, описывается еще и три статических метода. Эти статические методы затем вызываются в методе Main(). Проанализируем их программные коды.
Статический метод show() не возвращает результат (ключевое слово void перед названием метода в его описании), и у него один текстовый аргумент (описан как string txt). В теле метода всего одна команда
Console.WriteLine (txt); ,
Статический метод factorial() предназначен для вычисления факториала числа, переданного аргументом методу. Поэтому аргумент n метода factorial() объявлен как целочисленный (тип int). Вычисленное значение возвращается результатом метода. Тип результата определяется как целочисленный (тип int).
В теле метода командой объявляется целочисленная локальная переменная s с начальным значением 1. После этого запускается цикл, в котором индексная переменная к пробегает значения от 1 до n включительно (напомним, что n - это аргумент метода). За каждую итерацию цикла командой
s *= k;
return s;
Переменная k доступна только в цикле. Под нее память выделяется при запуске на выполнение конструкции цикла. После того как конструкция цикла завершает работу, переменная k удаляется из памяти (освобождается место в памяти, выделенное под эту переменную).
Еще один статический метод, описанный в программе, предназначен для вычисления результата возведения числа в целочисленную степень. Метод называется power(), у него два аргумента (первый типа double и второй типа int). Результатом метод возвращает значение типа double.
Код метода power() немного напоминает код метода factorial(). В теле метода power() объявляется переменная s типа double с начальным значением 1. Затем с помощью конструкции цикла значение переменной s последовательно умножается n раз (второй аргумент метода) на значение х (первый аргумент метода). Значение переменной s возвращается результатом метода.
В главном методе программы сначала командой
show("Начинаем вычисления:");
show(m + "!=" + factorial(m)); .
factorial (m),
show(m + "!=" + factorial(m)); .
m + "!=" + factorial(m),
m + "!=" + factorial(m),
Вычисление выражения factorial(m) выполняется так. Поскольку метод factorial() возвращает целочисленный результат, то при вызове метода для запоминания этого результата автоматически выделяется место в памяти. В процессе выполнения кода метода factorial() формируется значение переменной s. При выполнении команды
return s;
Командой
num = power(z, m);
При вызове метода power() с аргументами z и m значение z возводится в степень m, а результат записывается в локальную переменную s. При выполнении команды
return s;
num = power(z, m);
Вычисленное значение переменной num используется в команде
show(z + " в степени " + m + ": " + num);
На следующем шаге мы рассмотрим перегрузку статических методов.