Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Использование переменного числа аргументов





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

//продемонстрировать применение модификатора params..

using System;

class Min

{

public int MinVal(params int[] nums)

{

int m;

if (nums.Length == 0)

{

Console.WriteLine("Ошибка: нет аргументов.");

return 0;

}

m = nums[0];

for (int i = 1; i < nums.Length; i++)

if (nums[i] < m) m = nums[i];

return m;

}

}

class ParamsDemo

{

static void Main()

{

Min ob = new Min();

int min;

int a = 10, b = 20;

//вызвать метод с двумя значениями.

min = ob.MinVal(a, b);

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

//Вызвать метод с тремя значениями

min = ob.MinVal(a, b, -1);

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

//Вызвать метод с пятью значениями

min = ob.MinVal(18, 23, 3, 14, 25);

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

//вызвать метод с массивом целых значений

int[] args = { 45, 67, 34, 9, 112, 8 };

min = ob.MinVal(args);

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

}

}

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

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

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

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

using System;

class MyClass

{

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

{

Console.Write(msg + " ");

foreach (int i in nums) Console.Write(i + " ");

Console.WriteLine();

}

}

class ParamsDemo2

{

static void Main(){

MyClass ob=new MyClass();

ob.ShowArgs("Это ряд целых чисел",1,2,3,4,5);

ob.ShowArgs("А это еще два целых числа ",17,20);

}

}

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







Date: 2015-09-02; view: 363; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.009 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию