Читаем C# 4.0 полное руководство - 2011 полностью

// Вызвать метод с массивом целых значений, int[] args = { 45, 67, 34, 9, 112, 8 }; min = ob.MinVal(args);

Console.WriteLine("Наименьшее значение равно " + min);

}

}

При выполнении этой программы получается следующий результат.

Наименьшее значение равно 10 Наименьшее значение равно -1 Наименьшее значение равно 3 Наименьшее значение равно 8

Всякий раз, когда вызывается методMinVal, ему передаются аргументы в массивеnums.Длина этого массива равна числу передаваемых аргументов. Поэтому с помощью методаMinVal можно обнаружить наименьшее среди любого числа значений.

Обратите внимание на последний вызов методаMinVal. Вместо отдельных значений в данном случае передается массив, содержащий ряд значений. И такая передача аргументов вполне допустима. Когда создается параметр типаparams,он воспринимает список аргументов переменной длины или же массив, содержащий аргументы.

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

min = ob.MinVal(1, 2.2); // Неверно!

считается недопустимым, поскольку нельзя автоматически преобразовать типdouble(значение 2.2) в типint,указанный для массиваnumsв методеMinVal .

Пользоваться модификаторомparamsследует осторожно, соблюдая граничные условия, так как параметр типаparamsможет принимать любое число аргументов — даженулевое! Например, вызов методаMinVal в приведенном ниже фрагменте кода считается правильным с точки зрения синтаксиса С#.

min = ob.MinVal; // нет аргументов min = ob.MinVal(3); // 1 аргумент

Именно поэтому в методеMinVal организована проверка на наличие в массивеnumsхотя бы одного элемента перед тем, как пытаться получить доступ к этому элементу. Если бы такой проверки не было, то при вызове методаMinVal без аргументов возникла бы исключительная ситуация во время выполнения. (Подробнее об исключительных ситуациях речь пойдет в главе 13.) Больше того, код методаMinVal написан таким образом, чтобы его можно было вызывать с одним аргументом. В этом случае возвращается этот единственный аргумент.

У метода могут быть как обычные параметры, так и параметр переменной длины. В качестве примера ниже приведена программа, в которой методShowArgs

принимает один параметр типа string, а также целочисленный массив в качестве параметра типа params.

// Использовать обычный параметр вместе с параметром // переменной длины типа params.

using System;

class MyClass {

public void ShowArgs(string msg, params int[] nums) {

Перейти на страницу:

Похожие книги

Access 2002: Самоучитель
Access 2002: Самоучитель

В книге рассматривается широкий круг вопросов, связанных с использованием программной среды Access 2002, которая является составной частью пакета Office 2002 и предназначена для создания банка данных в самых различных предметных областях.Подробно описывается методика проектирования объектов базы данных (таблицы, формы, отчеты, страницы доступа к данным, запросы, модули).Детально обсуждаются вопросы создания интегрированной базы данных в единой среде Access 2002: формирование БД с нуля, конвертирование в программную среду баз данных, созданных в ином программном окружении – Clarion, FoxPro.Особое внимание уделяется формированию разнообразных запросов к интегрированной базе данных Access 2002 с использованием языков программирования SQL, VBA и макросов.Приводятся общие сведения о возможностях языка обмена данными между различными компьютерами и приложениями (XML). Описываются возможности использования гиперссылок, связывающих базу данных с другими программными продуктами. Объясняется, как можно работать с базой данных Access 2002 без установки ее на компьютер, используя технологию ODBC (Open Data Base Connectivity). В приложениях приводятся количественные параметры Access 2002 и связанная с этой СУБД терминология.Предлагаемая книга будет полезна специалистам, занимающимся практической разработкой банков данных и приложений на их основе, а также студентам вузов, изучающим информатику.

Павел Юрьевич Дубнов

Программирование, программы, базы данных / ОС и Сети / Книги по IT