Передача параметров типа значения


Методы

Массивы массивов

Массив массивов — это массив, элементы которого сами являются массивами. Элементы массива массивов могут иметь различные размеры и измерения. Массивы массивов иногда также называются "невыровненными массивами". В следующих примерах показано, как выполняется объявление, инициализация и доступ к массивам массивов.

int[][] mas_mas = new int[3][]; mas_mas[0] = new int[5];mas_mas[1] = new int[4];mas_mas[2] = new int[2];

Для заполнения элементов массива значениями можно также использовать инициализаторы, при этом размер массива знать не требуется.

mas_mas[0] = new int[] { 1, 3, 5, 7, 9 };mas_mas[1] = new int[] { 0, 2, 4, 6 };mas_mas[2] = new int[] { 11, 22 };

Также массив можно инициализировать путем объявления.

int[][] mas_mas2 = new int[][]{ new int[] {1,3,5,7,9}, new int[] {0,2,4,6}, new int[] {11,22}};

Также можно использовать сокращенную форму. Обратите внимание, что при инициализации элементов оператор new опускать нельзя, так как инициализации по умолчанию для этих элементов не существует.

int[][] mas_mas3 ={ new int[] {1,3,5,7,9}, new int[] {0,2,4,6}, new int[] {11,22}};

Метод представляет собой блок кода, содержащий набор инструкций. В C# все инструкции выполняются в контексте метода. В этом разделе описываются именованные методы. Другой тип методов, называемых анонимными функциями, описан в других разделах документации.

Методы объявляются в классе или в структуре путем указания уровня доступа, возвращаемого значения, имени метода и списка параметров этого метода. Все вместе эти элементы образуют подпись метода. Параметры заключаются в круглые скобки и разделяются запятыми. Пустые скобки указывают на то, что у метода нет параметров.

Методы имеют смысл подпрограмм. В случае, если метод возвращает какое-либо значение, его использование схоже с использованием функции. Если метод не возвращает никаких значений - его применение аналогично процедуре.

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

Чтобы использовать возвращаемое методом значение в вызываемом методе, вызов метода можно поместить в любое место кода, где требуется значение соответствующего типа.

Пример и использованием возвращаемого значения:

static string my_func() { //данный метод возвращает строку return "Hello world!"; }static void Main(string[] args) { //"Главный" метод string s = "*** "+my_func()+" ***"; Console.WriteLine(s); }

Пример с использованием void:

static void my_proc() { Console.WriteLine( "Hello world!"); } static void Main(string[] args) { my_proc(); }

Переменная типа значения содержит данные непосредственно, в противоположность переменной ссылочного типа, которая содержит ссылку на данные. Поэтому передача переменной типа значения методу означает передачу методу копии переменной. Любые изменения параметра, выполняемые внутри метода, не влияют на исходные данные, хранимые в переменной. Если требуется, чтобы вызываемый метод изменял значение параметра, его следует передавать ссылкой с помощью ключевого слова ref или out.