Полная версия

Главная arrow Информатика arrow Введение в программирование на языке Visual C#

  • Увеличить шрифт
  • Уменьшить шрифт


<<   СОДЕРЖАНИЕ   >>

Создание методов

На протяжении работы над листингами, приведенными в учебном пособии, мы пользовались различными методами, которые были созданы разработчиками, но теперь впервые попробуем создать свой (назовем его Square), обеспечивающий вычисление суммы квадратов двух чисел. Для этого, находясь в среде Microsoft Visual Studio и создав новое Windows-приложение, выполним команду Project / Add Class. Имя класса оставим предлагаемое по умолчанию — Classl. Из листинга 126 видно, что метод Square имеет два целочисленных параметра х и у, кроме того, он будет возвращать целочисленное значение, поэтому в заголовке используется ключевое слово int. Роль ключевого слова static будет описана ниже.

Листинг 126

namespace WindowsApplicationl {

class Classl {

public static int Square(int x, int у) //заголовок метода {

//тело метода int с = х*х + у*у;

return с; //метод возвращает значение переменной с

}

}

}

В основной части программы (см. листинг 127) мы присваиваем переменным х и у соответствующие значения (х=5, у=5), которые передаются в метод Square. Оператор с = х*х + у*у; производит вычисление суммы квадратов чисел. Затем происходит обращение к методу Square и результат возвращается в точку вызова, в данном случае происходит вывод ответа на элемент управления labeil.

Результатом выполнения кода станет значение, равное 50.

Листинг 127

namespace WindowsApplicationl {

public partial class Forml : Form {

public Forml()

{

InitializeComponent();

}

private void buttonl_Click(object sender, EventArgs e)

{

int x — 5; int у — 5;

labell.Text = Classl.Square(x, у).ToString();

}

}

}

Описание вышеприведенных действий должно напомнить вызов математических функций (например, функции sin(x)) в программах:

private void buttonl_Click(object sender, EventArgs e)

{

int x = 5;

labell.Text = Math.Sin(x).ToString();

}

Сравните, также происходит обращение к классу Math (правда, созданному разработчиками), также происходит вызов метода (функции) (тоже созданному разработчиками) с заранее заданным параметром х, а результат вычисления передается в точку вызова (labeil).

Ключевое слово static (статический), используемое в заголовке метода, показывает, что соответствующий метод будет вызываться на уровне класса, а не экземпляра. Таким образом, при вызове метода не надо создавать экземпляр класса Classl с использованием ключевого слова new. Проведем эксперимент и уберем слово static из заголовка метода Square (см. листинг 128).

Листинг 128

namespace WindowsApplicationl {

class Classl {

public int Square(int x, int y)

{

int c = x*x + y*y; return c;

}

}

}

Какие изменения претерпит основная часть программы? Придется создать экземпляр класса Classl строкой кода Classl v = new Classl();

Листинг 129

namespace WindowsApplicationl {

public partial class Forml : Form {

public Forml()

{

InitializeComponent();

}

private void buttonl_Click(object sender, EventArgs e)

{

int x = 5; int у — 5;

Classl v = new ClasslO;

labeil.Text = v.Square(x, у).ToString();

//labell.Text = Classl.Square(x, у).ToString();

}

}

}

Результ выполнения программы будет также равен 50, однако роль ключевого слова static теперь должна быть понятна.

 
<<   СОДЕРЖАНИЕ   >>