Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы на вопросы_2003.doc
Скачиваний:
14
Добавлен:
16.04.2019
Размер:
275.46 Кб
Скачать

33. Методы в с#

В C# методы определяются в рамках объявления класса. Методы (функции) являются членами класса и определяют функциональность объектов-членов класса (нестатические методы – методы объектов), и непосредственно функциональность самого класса (статические методы - методы класса) класса. Метод может быть объявлен и метод может быть вызван. Поэтому различают объявление метода (метод объявляется в классе), вызов метода (выражение вызова метода располагается в теле метода). Различают статические (со спецификатором static) и нестатические методы (объявляются без спецификатора). Статические методы вызываются от имени класса, в котором они были объявлены. Считается, что статические методы определяют функциональность класса, а нестатические методы определяют поведение конкретных объектов-представителей класса и потому вызываются от имени (ссылки) объекта-представителя класса, содержащего объявление вызываемого метода.

34. Вызов метода

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

C#

class TestMotorcycle : Motorcycle

{ public override double GetTopSpeed()

{ return 108.4; }

static void Main()

{ TestMotorcycle moto = new TestMotorcycle();

moto.StartEngine();

moto.AddGas(15);

moto.Drive(5, 20);

double speed = moto.GetTopSpeed();

Console.WriteLine("My top speed is {0}", speed);

}}

35. Возврат из метода. Возврат значений из метода.

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

слово return служит для возврата целочисленных значений.

C#

class SimpleMath

{ public int AddTwoNumbers(int number1, int number2)

{ return number1 + number2; }

public int SquareANumber(int number)

{ return number * number; }

}

36. Параметры методов. Передача параметров по значению. Передача параметров по ссылке.

Известно два способа передачи параметров при вызове метода:

􀂃 по значению (в силу специфики механизма передачи параметров только входные),

􀂃 по ссылке (входные и/или выходные).

По значению – БЕЗ спецификаторов (для размерных типов этот способ

предполагается по умолчанию). Локальная копия значения в методе. Параметр

представляет собой означенную переменную. Его можно использовать в методе

наряду с переменными, объявленными в теле метода. Изменение значения

параметра НЕ влияет на значение параметра в выражении вызова.

Для организации передачи по ссылке параметра РАЗМЕРНОГО типа требуется

явная спецификация ref или out. По ссылке – спецификатор ref (для ссылочных

типов предполагается по умолчанию (другого способа передачи параметра для

ссылочных типов просто нет), для размерных типов спецификатор необходимо явно

указывать).