Методы члены класса
Среда проектирования Visual Studio .NET дает возможность использовать мастер создания метода - члена класса (в окне Class View выбрать имя класса и выполнить команду контекстного меню Add|Add Metod). Список Modifier. диалога. C# Metod Wizard позволяет указать один из следующих модификаторов параметра метода:
- none - определяет передачу параметров по значению. Если внутри метода будет изменено значение фактического параметра, то вне метода его значение останется прежним;
- ref - определяет передачу параметров по ссылке. Изменение параметра внутри метода останется и после завершения метода. ref-параметр перед использованием обязательно должен быть инициализирован;
- out - определяет передачу параметров по результату. При завершении метода конечное значение формального параметра присваивается указанному при вызове фактическому параметру. При этом в момент вызова метода фактический параметр может не быть инициализирован.
Например:
public void Metod1(int i, ref int j, out int k) { }
При обращении к методу или полю - членам класса используется операция . (точка) - доступ к члену класса. Имя поля или метода члена класса квалифицируется именем экземпляра класса.
Язык C# позволяет использовать методы с переменным числом параметров. Для метода с переменным числом параметров должны быть выполнены следующие правила:
- переменный список параметров выступает как единый параметр и указывается ключевым словом params;
- кроме переменного списка параметров, никаких других параметров после ключевого слова params в методе указывать нельзя;
- в методе может быть указано только одно ключевое слово params, определяющее переменный список параметров.
Количество параметров в переменном списке параметров определяется свойством Length .
Например:
using System; public class MyClass1 { public static void UseParams1(params int[] list) { // Отображение списка параметров for ( int i = 0 ; i < list.Length ; i++ ) Console.WriteLine(list[i]); } public static void UseParams2(params object[] list) { // В переменном списке параметров могут быть // объекты различных типов for ( int i = 0 ; i < list.Length ; i++ ) Console.WriteLine((object)list[i]); } public static void UseParams3(int k,params object[] list) { // В переменный список параметров // включаются параметры, начиная // со второго for ( int i = 0 ; i < list.Length ; i++ ) Console.WriteLine((object)list[i]); } public static void Main() { UseParams1(1, 2, 3, 4, 5); UseParams1(1, 2); int[] myarray = new int[3] {1,2,3}; UseParams1(myarray); UseParams2(111, 'f', "string"); UseParams3(111, 'f', "string");
} }
Листинг 15.2.