Шаг 64.
Язык программирования C#. Начала
Статические методы. Знакомство со статическими методами

    На этом шаге мы приведем общие сведения о статистических методах.

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


Метод в любом случае описывается в классе. Бывают методы статические и нестатические. Нестатический метод вызывается из объекта. То есть для вызова нестатического метода нужен объект: указывается имя объекта и через точку имя метода, который вызывается. Если метод статический, то для его вызова объект не нужен. При вызове статического метода вместо имени объекта указывается имя класса. Но если статический метод вызывается в том же классе, в котором он описан, то имя класса можно не указывать. Мы планируем вызывать статические методы в главном методе программы. Поэтому, если такие статические методы описаны в том же классе, в котором описан главный метод программы, то нет необходимости указывать имя класса. Именно такие ситуации рассматриваются в последующих шагах.

    Для работы со статическими методами нам необходимо выяснить, как метод описывается и как метод вызывается. Начнем с описания метода.

    Мы исходим из того, что метод описывается в том же классе, в котором содержится метод Main(), и вызывается описанный статический метод тоже в методе Main() (или в другом статическом методе, описанном в том же самом классе). Описание статического метода можно размещать как перед описанием метода Main(), так и после него. Ниже приведем шаблон описания статического метода:

static тип имя(аргументы){
  // Команды
}

    Начинается описание статического метода с ключевого слова static. Ключевое слово "сигнализирует" о том, что метод статический. Затем в описании метода указывается идентификатор, определяющий тип результата метода. Например, если метод результатом возвращает целочисленное значение, то в качестве идентификатора типа указываем ключевое слово int. Если метод результатом возвращает символ, то идентификатором типа результата метода указываем ключевое слово char. Может так быть, что метод не возвращает результат. В этом случае идентификатором типа результата указывается ключевое слово void.


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

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


Если метод описан в классе, то это совсем не означает, что команды в теле метода будут выполнены. Для выполнения команд в теле метода этот метод необходимо вызвать. Команды выполняются только тогда, когда вызывается метод. Если метод не вызывается, то и команды не выполняются. Переменные, которые объявлены в методе, доступны только в теле метода. Здесь уместно вспомнить главное правило, связанное с областью доступности переменных: переменная доступна в том блоке, в котором она объявлена. Если переменная объявлена в теле метода, то в теле метода она и доступна. Поэтому такая переменная называется локальной. Место в памяти для локальной переменной выделяется при выполнении метода. А после того как метод завершает выполнение, переменная из памяти удаляется. При новом вызове метода все повторится: под переменную будет выделено место в памяти, а затем при завершении работы метода выделенное под переменную место освобождается.

    Для того чтобы команды, описанные в методе, выполнились, метод необходимо вызвать. Вызывается метод просто: в соответствующем месте программного кода указываются имя метода и, если необходимо, аргументы, которые передаются методу при вызове. Аргументы указываются в круглых скобках после имени метода. Если у метода аргументов нет, то при вызове метода после имени метода указываются пустые круглые скобки.


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

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

    Если метод не возвращает результат, то вызов метода сводится к выполнению команд из тела метода. Если метод возвращает результат, то в выражение, содержащее инструкцию вызова метода, вместо этой инструкции подставляется значение, возвращаемое методом.

    При работе с методами часто используется инструкция return. Выполнение этой инструкции в теле метода завершает выполнение метода. Если после инструкции return указано некоторое выражение, то выполнение метода завершается, а значение выражения возвращается результатом метода. При этом тип значения выражения, указанного после return-инструкции, должен совпадать с идентификатором типа, указанным в описании метода как тип возвращаемого методом результата.


Если метод возвращает результат, то в теле метода используется return-инструкция (с указанием возвращаемого значения). Если метод не возвращает результат, то инструкцию return можно не использовать (но если она используется, то после ключевого слова return ничего не указывается).

    На следующем шаге мы закончим изучение этого вопроса.




Предыдущий шаг Содержание Следующий шаг