
- •Классы
- •Элементы класса
- •Порядок следования членов класса может быть произвольным.
- •Данные-члены
- •В примере нарушен принцип инкапсуляции –
- •пример:
- •Переменные только для чтения
- •События
- •Функции-члены
- •Определение и вызов методов
- •access – необязательный элемент, определяющий уровень доступа к методу,
- •object_name.met_name (fact_param_list)
- •В методах, возвращающих некоторое значение вызвавшей их подпрограмме, оператор содержит дополнительный элемент:
- •Использование параметров
- •Ссылочные параметры
- •Можно явно определить ссылочные параметры, независимо от их типа.
- •class Changing
- •Выходные параметры
- •class myClass
- •Массив параметров
- •заголовок универсального метода для суммирования : public static double Sum(params double [ ]
- •public static double Sum(params double [] myArray)

Массив параметров
часто приходится писать программный код методов, выполняющих одни и те же действия, но с различным числом параметров.
Методы, позволяющие подсчитать сумму двух, трех, четырех вещественных чисел:
public static double Sum2(double a, double b)
public static double Sum3(double a, double b, double c)
public static double Sum4(double a, double b, double c, double d)
они отличаются друг от друга, и кодом, и числом параметров.
21

Язык C# позволяет заменить все эти методы одним, использовав вместо различного числа скалярных параметров массив параметров, в котором может быть произвольное число элементов.
Массив параметров объявляется как одномерный массив соответствующего базового типа с дополнительным ключевым словом params перед объявлением.
Тип фактических параметров должен неявно приводиться к типу массива параметров.
с ключевым словом params нельзя объявлять обычные многомерные массивы вида type [,], type [,,] и т.п.
Вместо этого используются объявления ступенчатых массивов type [] [], type [] [] [] и т.п.
Это вполне корректно, поскольку это одномерные массивы (массивов).
22

заголовок универсального метода для суммирования : public static double Sum(params double [ ] myArray)
определение и вызовы этого метода:
class myClass
{
public static void Main( )
{
double x1 = 1.2; double x2 = 3.2; double x3 = 5.2;
double [ ] myNumbers = {1, 1.3, 1.7, 123.4}; Sum(x1, x2);
Sum(x1, x2, x3); Sum(x1, x2, x3, 0.678); Sum(myNumbers); Sum();
...
}
23

public static double Sum(params double [] myArray)
{
double s = 0;
Console.WriteLine(“chislo slagaemyh=“+ myArray.Length);
foreach (double x in myArray)
{
s+=x;
}
Console.WriteLine(“summa= “+s); return s;
}
}
24