В предыдущем разделе мы познакомились с методами вкратце, но о них можно рассказать гораздо больше. Теперь рассмотрим более подробно, как передавать методу значения и получать значения, созданные при работе метода.
Предположим, вам потребовалось, чтобы компьютер вывел на экран следующий текст:
Hello Jo
Hello Sam
Hello You
Один из возможных способов — написать отдельный метод для каждого случая:
void WriteHelloJo()
{
Console.WriteLine("Hello Jo");
}
void WriteHelloSam()
{
Console.WriteLine("Hello Sam");
}
void WriteHelloYou()
{
Console.WriteLine("Hello You");
}
Затем необходимо вызвать их следующим образом:
WriteHelloJo();
WriteHelloSam();
WriteHelloYou();
Но ведь все три метода очень похожи. А что если написать один метод WriteHello, дополнив его соответствующими параметрами, и при каждом вызове просто передавать значение параметра, отличающее один вызов от другого?
Вот как это можно сделать:
void WriteHello(string someName)
{
Console.WriteLine("Hello " + someName);
}
и затем вызвать метод следующим образом:
WriteHello("Jo");
WriteHello("Sam");
WriteHello("You");
Как видим, код позволяет сэкономить и занимаемое пространство, и затраченные усилия. Всегда старайтесь делать код как можно более кратким – чем короче программа, тем умнее программист.
Примечание редактора. Умный программист пишет не только короткий, но и понятный код. Хороший код всегда содержит комментарии умного программиста.
Напишем метод подобным "умным" образом:
void WriteHello(string someName)
{
Console.WriteLine("Hello " + someName);
}
Фактически мы говорим: "Каждый раз при вызове этого метода я буду подставлять строку символов с каким-либо именем. Любая подставляемая строка должна выводиться после слова "Hello".
Код в скобках (string someName) называется параметром. Параметр позволяет подставлять значение в метод при его вызове.
Когда вас обучали сложению, учитель не рассказывал о сложении всех существующих пар чисел, он просто научил методу и затем задавал разные задачи: "Сложите 2 и 5, а теперь 7 и 3". Это похоже на то, как если бы вам излагали метод сложения чисел, используя параметры: неважно, какие значения у параметров, - зная метод, всегда можно найти ответ для заданных значений.
Компьютеру все равно, какое имя вы присвоите параметру, важно, чтобы оно было единым при использовании во всем методе. Например, следующий код будет выполнен правильно:
void WriteHello(string x)
{
Console.WriteLine("Hello " + x);
}
А этот с ошибкой:
void WriteHello(string someName)
{
Console.WriteLine("Hello " + someBodiesName);
}
Вы заметили: параметры someName и someBodiesName отличаются — наш "электронный друг" не разберется в этой путанице и "разгневается".
Кроме того, в методе можно использовать не один параметр, а несколько, но нужно обязательно разделить их запятыми:
void WriteHello(string firstName, string lastName)
{
Console.WriteLine("Hello " + firstName + " " + lastName);
}
А при вызове метода необходимо подставить правильное количество значений:
WriteHello("Petr", "Ivanov");
В данном случае на экран будет выведен текст "Hello Petr Ivanov".