Учебники

C # — Методы

Метод — это группа операторов, которые вместе выполняют задачу. Каждая программа на C # имеет хотя бы один класс с методом Main.

Чтобы использовать метод, вам нужно —

  • Определите метод
  • Вызовите метод

Определение методов в C #

Когда вы определяете метод, вы в основном объявляете элементы его структуры. Синтаксис для определения метода в C # следующий:

<Access Specifier> <Return Type> <Method Name>(Parameter List) {
   Method Body
}

Ниже приведены различные элементы метода —

  • Спецификатор доступа — определяет видимость переменной или метода из другого класса.

  • Тип возврата — метод может возвращать значение. Тип возвращаемого значения — это тип данных значения, которое возвращает метод. Если метод не возвращает никаких значений, тип возвращаемого значения void .

  • Имя методаимя метода является уникальным идентификатором и учитывает регистр. Он не может совпадать с любым другим идентификатором, объявленным в классе.

  • Список параметров — заключенный в скобки, параметры используются для передачи и получения данных из метода. Список параметров относится к типу, порядку и количеству параметров метода. Параметры являются необязательными; то есть метод может не содержать параметров.

  • Тело метода — содержит набор инструкций, необходимых для выполнения требуемого действия.

Спецификатор доступа — определяет видимость переменной или метода из другого класса.

Тип возврата — метод может возвращать значение. Тип возвращаемого значения — это тип данных значения, которое возвращает метод. Если метод не возвращает никаких значений, тип возвращаемого значения void .

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

Список параметров — заключенный в скобки, параметры используются для передачи и получения данных из метода. Список параметров относится к типу, порядку и количеству параметров метода. Параметры являются необязательными; то есть метод может не содержать параметров.

Тело метода — содержит набор инструкций, необходимых для выполнения требуемого действия.

пример

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

class NumberManipulator {

   public int FindMax(int num1, int num2) {
      /* local variable declaration */
      int result;

      if (num1 > num2)
         result = num1;
      else
         result = num2;

      return result;
   }
   ...
}

Вызов методов в C #

Вы можете вызвать метод, используя имя метода. Следующий пример иллюстрирует это —

Live Demo

using System;

namespace CalculatorApplication {
   class NumberManipulator {
      public int FindMax(int num1, int num2) {
         /* local variable declaration */
         int result;
         
         if (num1 > num2)
            result = num1;
         else
            result = num2;
         return result;
      }
      
      static void Main(string[] args) {
         /* local variable definition */
         int a = 100;
         int b = 200;
         int ret;
         NumberManipulator n = new NumberManipulator();

         //calling the FindMax method
         ret = n.FindMax(a, b);
         Console.WriteLine("Max value is : {0}", ret );
         Console.ReadLine();
      }
   }
}

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —

Max value is : 200

Вы также можете вызывать открытый метод из других классов, используя экземпляр класса. Например, метод FindMax принадлежит классу NumberManipulator , его можно вызвать из другого класса Test .

Live Demo

using System;

namespace CalculatorApplication {
   class NumberManipulator {
      public int FindMax(int num1, int num2) {
         /* local variable declaration */
         int result;
         
         if(num1 > num2)
            result = num1;
         else
            result = num2;
         
         return result;
      }
   }
   class Test {
      static void Main(string[] args) {
         /* local variable definition */
         int a = 100;
         int b = 200;
         int ret;
         NumberManipulator n = new NumberManipulator();
         
         //calling the FindMax method
         ret = n.FindMax(a, b);
         Console.WriteLine("Max value is : {0}", ret );
         Console.ReadLine();
      }
   }
}

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —

Max value is : 200

Рекурсивный вызов метода

Метод может вызывать сам себя. Это известно как рекурсия . Ниже приведен пример, который вычисляет факториал для данного числа с использованием рекурсивной функции:

Live Demo

using System;

namespace CalculatorApplication {
   class NumberManipulator {
      public int factorial(int num) {
         /* local variable declaration */
         int result;
         if (num == 1) {
            return 1;
         } else {
            result = factorial(num - 1) * num;
            return result;
         }
      }
      static void Main(string[] args) {
         NumberManipulator n = new NumberManipulator();
         //calling the factorial method {0}", n.factorial(6));
         Console.WriteLine("Factorial of 7 is : {0}", n.factorial(7));
         Console.WriteLine("Factorial of 8 is : {0}", n.factorial(8));
         Console.ReadLine();
      }
   }
}

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —

Factorial of 6 is: 720
Factorial of 7 is: 5040
Factorial of 8 is: 40320

Передача параметров в метод

Когда вызывается метод с параметрами, необходимо передать параметры в метод. Существует три способа передачи параметров в метод —

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

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

Этот метод помогает возвращать более одного значения.