русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Class Classl


Дата добавления: 2013-12-23; просмотров: 923; Нарушение авторских прав


. . .

Static <возвращаемыйТип> <имяФункции>{<n1Тип> <n1Имя>, . . .

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

. . .

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

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

static void myFunction (string myString, double myDouble)

{

}

не может быть вызвана с использованием строки:

myFunction(2.6, “Hello” ) ;

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

myFunction(“Hello”);

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

static void Main (string [] args)

{

doublet] myArray = {1.3, 8.9, 3.3, 6.5, 2.7, 5.3};

double maxVal = MaxValue (myArray) ;

Console.WriteLine(“The maximum value in myArray is {0}”, maxVal) ;

}

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

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



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

params <тип>[] <имя>)

{

return <возвращаемоеЗначение>

}

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

<имяФункции> (<n1 >, . . . , <значение1>, <значение2>, . . .) ;

В данном случае <значение1>, <значение2> и и т.д. значения типа <тип>.

Они используются для инициализации массива с именем <имя>. Никаких ограничений на количество параметров, которые могут быть здесь заданы, не существует; единственное предъявляемое к ним требование — они все должны быть одного типа <тип>. Можно вообще не задавать ни одного параметра. Эта последняя особенность делает массивы параметров полезными, в частности, при задании некоторой дополнительной информации, которая будет использоваться функцией. Например, допустим, что имеется функция getword(), которая принимает значение типа string в качестве первого параметра и возвращает первое слово из этой строки:

string firstWord = getWord(“This is a sentence.”);

Переменной firstWord будет присвоена строка “This”

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

string firstWord = getWord(“This is a sentence.”, 2) ;

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

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

string firstWord = getWord(“This is a sentence.”, 4, 3).;

В этом случае переменной firstWord будет присвоена строка “sen”.

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

{

static int sumVals(params int [] val)

{

int sum=0;

foreach (int val int vals)

{

sum += val;

}

return sum;

}

static void Main (string [] args)

{

int sum = sumValsd, 5, 2, 9, 8) ;

Console.WriteLine(“Summed Values = {0}”, sum);

}

}

В этом примере функция sumVals () описана с использованием ключевого слова params, что позволяет ей принимать произвольное количество параметров типа int(и никакого другого):

static int sumVals(params int[] vals)

{



<== предыдущая лекция | следующая лекция ==>
Class Class1 | Выходные параметры


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.114 сек.