571.84K
Категория: ПрограммированиеПрограммирование

Процедуры и функции – методы класса. Лекция №6

1.

Процедуры и функции –
методы класса
Лекция №6

2.

Метод
• Метод представляет собой блок
кода, содержащий набор
инструкций.
• Метод Main является точкой входа
для каждого приложения C#, и
вызывается он средой CLR при
запуске программы.

3.

Метод
<уровень доступа><модификаторы><тип
возвращаемого значения><имя>(<тип
аргумента><имя аргумента>)
Примеры
public static int Main(object param){…}
public void PrintName(){…}
internal sealed Point GetCentr(Circle cir, double
r){…}

4.

Сигнатуры метода
Сигнатура метода включает:
• уровень доступа,
• необязательные модификаторов,
• тип возвращаемого значения,
• имя метода и всех параметров
этого метода.

5.

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

6.

Модификаторы доступа
• public Доступ к типу или члену
возможен из любого другого кода в
той же сборке или другой сборке,
ссылающейся на него.
• private Доступ к типу или члену
можно получить только из кода в
том же классе или структуре.

7.

Модификаторы доступа
• protected Доступ к типу или
элементу можно получить только
из кода в том же классе или
структуре, либо в производном
классе.
• internal Доступ к типу или члену
возможен из любого кода в той же
сборке, но не из другой сборки.

8.

Модификаторы доступа
• protected internal Доступ к типу или
элементу может осуществляться
любым кодом в сборке, в которой он
объявлен, или из наследованного
класса другой сборки. Доступ из другой
сборки должен осуществляться в
пределах объявления класса,
производного от класса, в котором
объявлен защищенный внутренний
элемент, и должен происходить через
экземпляр типа производного класса.

9.

Модификаторы
abstract
Указывает на то, что класс предназначен только для
использования в качестве базового класса других
классов.
async
Указывает, что измененный метод, лямбдавыражение либо анонимный метод является
асинхронным.
const
Указывает на то, что значение поля или локальной
переменной не может быть изменено.
event
Объявление события.
extern
Указывает на то, что метод имеет внешнюю
реализацию.
new
Явно скрывает член, унаследованный от базового
класса.

10.

override
partial
readonly
sealed
static
unsafe
virtual
volatile
Обеспечивает новую реализацию виртуального члена,
унаследованного от базового класса.
Определяет разделяемые классы, структуры и методы в
рамках одной сборки.
Объявляет поле, которому можно присваивать значения
только в рамках объявления или в конструкторе этого же
класса.
Указывает на то, что класс не может наследоваться.
Объявляет член, который относится к типу, а не к
конкретному объекту.
Объявляет небезопасный контекст.
Объявляет обычный метод или метод доступа, реализацию
которых можно изменить путем переопределения члена в
производном классе.
Указывает на то, что поле может быть изменено в
программе операционной системой, оборудованием,
параллельным потоком и т. д.

11.

Возвращаемые значения
Если тип возвращаемого значения,
указываемый перед именем
метода, не равен void, для
возвращения значения
используется ключевое
слово return.
static double CalculateArea(int r) {
double area = r * r * Math.PI;
return area; }

12.

Параметры методов и аргументы
• Когда код вызова вызывает метод, он
предоставляет конкретные значения,
называемые аргументами, для каждого
параметра.
• int numA = 4;
• int productA = CalculateArea(numA);
• int numB = 32;
• int productB = CalculateArea(numB);

13.

Модификаторы параметров
Модификато
Описание
р параметра
Если параметр не сопровождается модификатором, предполагается,
(отсутствует) что он должен передаваться по значению, т.е. вызываемый метод
должен получать копию исходных данных
Выходные параметры должны присваиваться вызываемым методом
(и, следовательно, передаваться по ссылке). Если параметрам out в
out
вызываемом методе значения не присвоены, компилятор сообщит об
ошибке
Это значение первоначально присваивается вызывающим кодом и
при желании может повторно присваиваться в вызываемом методе
ref
(поскольку данные также передаются по ссылке). Если параметрам
ref в вызываемом методе значения не присвоены, компилятор
никакой ошибки генерировать не будет
params
Этот модификатор позволяет передавать в виде одного логического
параметра переменное количество аргументов. В каждом методе
может присутствовать только один модификатор params и он должен
обязательно указываться последним в списке параметров.

14.

Модификаторы параметров

15.

Модификаторы параметров

16.

Встроенные функции
Используйте следующую форму для
определения подставляемой функции:
inline type (необязательно) function-definition ;
С помощью подставляемых функций
можно создавать более быстрый код,
который иногда может быть меньше,
чем при использовании
соответствующего вызова функции.

17.

Встроенные функции
• Они сокращают время, необходимое для выполнения
вызовов функций.
• Подставляемые функции небольшого размера,
например длиной 3 строки или менее, создают меньше
кода, чем соответствующий вызов функции, потому что
компилятор не генерирует код для обработки
аргументов и возвращаемого значения.
• Для функций, которые создаются как подставляемые,
выполняется оптимизация кода, которая недоступна
для обычных функций, поскольку компилятор не
выполняет межпроцедурные оптимизации.
English     Русский Правила