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

Использование параметров и возвращаемых значений Модификаторы параметров методов

В C# формальные параметры метода при его объявлении называют просто параметрами, а фактические параметры, передаваемые методу вызывающей стороной (клиентом) при его вызове - аргументами.

В языке C# существуют два типа переменных - типы, характеризуемые значением и ссылочные типы. Переменные типа значения содержат именованные данные (имя определяет адрес в ОП, где хранится значение) , к которым относятся все числовые типы, структуры и перечисления. Они создаются при компиляции программы и размещаются в стековой области памяти при загрузке программы.

Ссылочные типы содержат адреса участков памяти, создаваемых динамически при выполнении программы, и представляют неименованные данные (имя определяет адрес в ОП, в которой хранится адрес ячейки со значением).

Таблица 1 . Объекты типа значения и ссылки

Объявление типа

Создание объекта

Альтернативный синтаксис создания объекта

Встроенный тип - значение

int a;

int a = new int();

Пользовательский тип – значение struct MyStruct { public x, y; }

MyStruct point;

MyStruct point = new MyStruct();

Пользовательский тип - ссылка

class MyClass

{

public x, y;

}

// Объявили ссылку

MyClass point;

// Создали и привязали объект

point = new MyClass();

MyClass point = new MyClass();

При выполнении операции присваивания в переменные - значения копируются сами данные, в переменные - ссылки копируется адрес расположения данных.

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

Таблица 2 . Модификаторы параметров в C#

Модификатор

Описание

(нет)

Если параметр метода не помечен модификатором, то предполагается передача параметра по значению, т.е. в вызываемый метод передается копия оригинальных данных

out

Выходной параметр устанавливается вызываемым методом и передается по ссылке. Если вызываемый метод не присвоит выходному параметру значение, то генерируется ошибка компиляции

params

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

ref

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

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