проверка на наличие в массиве nums хотя бы одного элемента перед тем, как пытаться получить доступ к этому элементу. Если бы такой проверки не было, то при вызове метода MinVal () без аргументов возникла бы исключительная ситуация во время выполнения. (Подробнее об исключительных ситуациях речь пойдет в главе 13.) Больше того, код метода MinVal () написан таким образом, чтобы его можно было вызывать с одним аргументом. В этом случае возвращается этот единственный аргумент.
У метода могут быть как обычные параметры, так и параметр переменной длины. В качестве примера ниже приведена программа, в которой метод 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);
}
}
Вот какой результат дает выполнение этой программы.
Это ряд целых чисел: 1,
В тех случаях, когда у метода имеются обычные параметры, а также параметр переменной длины типа params, он должен быть указан последним в списке параметров данного метода. Но в любом случае параметр типа params должен быть единственным.
Возврат объектов из методов
Метод может возвратить данные любого типа, в том числе и тип класса. Ниже в качестве примера приведен вариант класса Rect, содержащий метод Enlarge (), в котором строится прямоугольник с теми же сторонами, что и у вызывающего объекта прямоугольника, но пропорционально увеличенными на указанный коэффициент.
// Возвратить объект из метода.
using System;
class Rect { int width; int height;
public Rect(int w, int h) { width = w; height = h;
}
public int Area() {
return width * height;
}
public void Show() {
Console.WriteLine(width + ' ' + height);
}
/* Метод возвращает прямоугольник со сторонами, пропорционально увеличенными на указанный коэффициент по сравнению с вызывающим объектом прямоугольника. */ public Rect Enlarge(int factor) {
return new Rect(width * factor, height * factor);
}
