Урок 7. Создание методов. Понятие сигнатуры метода


#1

Как и при создании переменных, при создании методов также нужно додерживаться определённых правил. Рассмотрим их на примере созданного ниже на рисунке метода:


1
Как видно из рисунка изначально мы должны указать тип возвращаемого значения метода, то есть тип того, что он будет возвращать. Тип возвращаемого значения ничем неограничен (но он должен быть указан!) и любой предопределённый или же пользовательский тип можно использовать при указании типа возвращаемого значения метода. Если тип возвращаемого значения не void, то в теле метода нужно с помощью ключевого слова return указать, что метод должен вернуть. Также данное ключевое слово обозначает конец работы метода.

После типа возвращаемого значения нужно указать имя метода (как к нему в дальнейшем нужно будет обращаться) и в аргументных скобках ( ) через “,” перечислить параметры, который он должен принимать для своей работы. При перечислении параметров нужно указывать их тип и имя, в дальнейшем в теле к данным параметрам можно будет обращаться как к локальным переменным данного метода.

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

В программировании есть также понятие сигнатуры методов. Изначально в C# (до версии 2.0) в сигнатуру входили такие части метода: возвращаемое значение метода + имя метода + информация о параметрах метода (их тип и количество), но на данный момент под сигнатурой метода подразумевается его имя и информация о параметрах параметры (тип возвращаемого значения исключили из сигнатуры). Поэтому если кто-то говорит, что методы имеют разные сигнатуры, то подразумевается, что методы могут иметь одинаковые возвращаемые значения, но при этом их имя и/или параметры отличаются.

В CIL, в сигнатуру может входить также и возвращаемое значение метода, так как в CIL, перегруженные методы могут отличаться типами возвращаемых значений, что недопустимо в C#.
Принято различать сигнатуру вызова и сигнатуру реализации метода. Сигнатура вызова обычно составляется по синтаксической конструкции вызова метода с учётом имени данной функции, последовательности фактических типов аргументов в вызове и типе результата. В сигнатуре реализации обычно участвуют некоторые элементы из синтаксической конструкции объявления функции: спецификатор области видимости функции, её имя и последовательность формальных типов аргументов.

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

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

Пример обращения к методу DrawRectangle:

static void Main(string[] args)
{
    DrawRectangle(17, 15);   // выводит прямоугольник 17х15

    Console.ReadKey();
}

Источник: видеоурок Александра Шевчука "МЕТОДЫ"

%D1%81%D1%82%D1%80%D0%B5%D0%BB%D0%BA%D0%B0%20%D0%B2%D0%BB%D0%B5%D0%B2%D0%BE%202 предыдущая статья | следующая статья %D1%81%D1%82%D1%80%D0%B5%D0%BB%D0%BA%D0%B0%20%D0%B2%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%202


Содержание справочника С# Starter
Урок 7. Рассмотрение управляющей структуры return