Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 57

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 51 52 53 54 55 56 < 57 > 58 59 60 61 62 63 .. 404 >> Следующая


Код, расположенный в HainO, объявляет и инициализирует простой целый массив, который будет использоваться совместно с функцией Maxvaiueo:

into myArray = (1, 8, 3, 6, 3, 5, 9, 3, 0, 2);

При вызове функции HaxvaiueO значение присваивается переменной Maxval типа int:

int maxVal = MaxValue(шуArray)>

Затем мы выводим это значенне на экран с помощью Console.WriteLine():

Console. WriteLine ('The maximum value in myArray is (0}', maxVal),-
112 Глава 6

Соответствие параметров

При вызове функции ее параметры должны в точности соответствовать ее описанию. Необходимо совпадение типов параметров, их количества и порядка их следования, Это означает, что, например, функция:

static void m^Function(string nyString, double royDouble)

(

J

не может быть вызвана с использованием строки: щуPuActiartf2.fi, 'Hello')j

В данном случае мы пытаемся передать значение типа double в качестве первого параметра, а значение типа Btring — в качестве второго, что не соответствует порядку, в котором эти параметры содержатся в описании функции. Нельзя использовать и такую строку:

myFunction(*Hello*>;

поскольку в ней передается только один параметр типа string вместо диух обязательных параметров.

Попытка воспользоваться любой из этих двух строк для вызова функции приведет к ошибке при компиляции, так как компилятор налагает требование точного соответствия сигнатурам вызываемых функций.

Возвращаясь к предыдущему примеру, такое требование означает, что функция Maxvalue О может использоваться только для получения максимального целого из массива целых чисел. Если мы изменим код в Main () следующим образом:

static void Main(string!] args)

( ______________________________________________________________

double(] myArray = (1.3, 8.9, 3.3, 6.5, 2,7, S.3b ' double maxVal * MaxValue (гцуArray);

- Console.WriteLinef'The maximum value in myArray is (0)*, maxVal);

)

то такой код не пройдет процедуру компиляции из-за неверного типа параметра.

Ниже, в разделе, посвященном перегрузке операторов, вы познакомитесь с очень полезным способом, позволяющим решить эту проблему.

Массивы параметров

В C# предусмотрена возможность задания одного (и только одного) специального параметра функции. Этот параметр, который обязательно должен распола1эться последним, известен под названием массива параметров. Он позволяет при обращении к функциям использовать переменное количество параметров. Массив параметров описывается посредством ключевого слова рагатя.

Массивы параметров служат одним нз способов упрощения кода, поскольку благодаря нм не приходится передавать массивы из вызывающего кода. Напротив, можно передать несколько параметров одного и того же типа, которые помещаются в массив для последующего не пользования внутри функцин.

При описании функцин с массивом параметров применяется следующий код:

static <возаращ&емыйТип> <имя<Вункции> |<о1№> <п1Иня>, ,, . ,

" _ paramo <тип>[ ] <имя>|

С
Функции

113

return <возврлдаеыолЗначеиие>; .

Для того чтобы вызвать эту функцию, потребуется следующий код:

<иняфулкции> (<п!>......<зялчетю1>, <зиачение2>, ЙМт!

В данном случае <значеиие1>, <эначение2> и т.д.— это значения типа <тип». Они используются для инициализации массива с именем <юиг>. Никаких ограничений на количество параметров, которые могут быть здесь заданы, ие существует; единственное предъявляемое к ним требование — они все должны быть одного типа <тип>. Можно вообще не задавать ни одного параметра. ¦

Эта последняя особенность делает массивы параметров полезными, в частности, прн задании некоторой дополнительной информации, которая будет использоваться функцией. Например, допустим, что имеется функция getwordn, которая принимает значение типа string в качестве первого параметра и возвращает первое слово из этой строки:

string firatWord - g«tWord(*This la a sentence,*);

Переменной firstword будет присвоена строка *Thia'.

Мы можем добавить в функцию getwordo параметр params, который позволит выбирать и возвращать другое слово по его индексу:

string firstword = getWordl'This is a sentence.*, 2)-» .

Если исходить нз предположения, что нумерация слов начинается с 1, то в результате такого вызова переменной firstword будет присвоена строка 'is'.

Можно ограничить количество возвращаемых символов, введя третий параметр, что совершенно допустимо для параметра рлгатв:

string firstHord = getWordC'This is a sentence.'. 4, 3);

В этом случае переменной firstword будет присвоена строка 'sen*.

Давайте разберем пример полностью.

Прантинум: обмен данными с функцией (часть 2)

1. Создайте новое консольное приложение с именем сьобвхоз

В Директории C:\BegCSharp\Chapter6.

2. Добавьте следующий код в ciaasl.es:

class Classl

......

static int sumVale(parama int[] vale)

*

int sum ¦ 0i '

foreacb {int val in vale) .

(

aum +» vali .

)

return sum;

>

static void Main(atring[] args)

int sum ¦ aumValsd, 5, 2, 9, 8);

Console.WriteLicet'Summed Valuta * (0)', sum);
Предыдущая << 1 .. 51 52 53 54 55 56 < 57 > 58 59 60 61 62 63 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.