Методы
Когда мы пишем код для нашего программного обеспечения, он может стать запутанным и сложным, чтобы решить эту проблему, мы разбиваем небольшие части нашего программного обеспечения на файлы methods
.
Метод — это блок инструкций, который выполняется только при его вызове, вы можете передать ему параметры и вернуть значение.
Создание метода
Метод имеет следующую структуру:
<access modifier> <instance or static> <return type> <method name>(<paramenters>)
{
}
Примеры
Это пример метода, к которому может получить доступ каждый, обозначенный public
модификатором доступа.
Возврата не имеет, указать void
ключевым словом.
Имеет имя WriteToConsole
.
И получает один параметр, обозначенныйstring message
public void WriteToConsole(string message)
{
// code
}
Для метода Add
он получает параметры value1
и value2
, оба типа int
, и возвращает сумму обоих параметров, указанную return
ключевым словом.
public int Add(int value1, int value2)
{
return value1 + value2;
}
Разбираем эти примеры
Модификатор доступа
Access Modifier
определяет, как код может получить доступ к части вашего кода. Они используются не только для методов, но и для классов, свойств, перечислений и т.д.
В C# существует четыре типа модификаторов доступа:
Модификатор | Описание |
---|---|
частный | Доступ к коду возможен только внутри одного класса. |
публичный | Код доступен для всех. |
внутренний | Доступ к коду возможен только. |
защищенный | Доступ к коду возможен только внутри того же класса или классов, которые наследуются от объявляющего класса. |
Вы также можете комбинировать их, например:
// Accessed public inside the project
public internal ...
// Accessed inly by classes that inherit an inside the same project
protected internal
Статический против экземпляра
Метод, который не определен как статический с помощью static
ключевого слова, всегда является методом экземпляра.
Пример
Чтобы получить доступ к Instance
методу, во-первых, вам нужно создать экземпляр объекта, и он работает с данными экземпляра.
Давайте используем наш класс калькулятора в качестве примера:
public class Calculator
{
public int Add(int x, int y)
{
return x + y;
}
}
public static Main()
{
Calculator calc = new Calculator();
int result = calc.Add(5,6);
}
Теперь, чтобы проиллюстрировать, что такое данные экземпляра, давайте изменим наш класс калькулятора, наш новый класс калькулятора будет иметь свойства X и Y и метод без параметров.
public class Calculator
{
public int X {get; set;}
public int Y {get;set;}
public int Add()
{
return X + Y;
}
}
Чтобы использовать это:
static void Main()
{
Calculator calc1 = new Calculator();
calc1.X = 5;
calc1.Y = 10;
int result1 = calc1.Add();
Calculator calc2 = new Calculator();
calc2.X = 22;
calc2.Y = 20;
int result2 = calc2.Add();
Console.WriteLine(result1); // Prints 15
Console.WriteLine(result2); // Prints 42
}
Статический
Статический метод уникален для приложения, а это означает, что все будут использовать одну и ту же копию метода. Эти методы находятся на уровне типа, а не на уровне экземпляра.
public class Calculator
{
public static int Add(int x, int y)
{
return x + y;
}
}
public static void Main()
{
// calling a static method.
int result = Calculator.Add(5,6);
}
Класс экземпляра может иметь несколько статических методов/методов экземпляра.
Статический класс может иметь только статические методы и члены.
Статический метод нельзя вызывать из экземпляра объекта.
Типы возврата
Метод может возвращать значение вызывающей стороне, тип, возвращаемый методом, указывается перед именем метода, и они должны иметь return
ключевое слово. void
методы не возвращают значение.
public void ExecuteAndDoesNotReturnAValue()
{
// code
{
public string ExecuteAndReturnsAValue()
{
return "This method has a return value";
}
Параметры и аргументы
Параметры — это параметры, перечисленные в сигнатуре метода. Аргументы — это значения, передаваемые методу.
// The method signatures has parameters
// In this case, two paramenters, x and y
public int Add(int x, int y)
{
return x + y;
}
public static Main()
{
Calculator calc = new Calculator();
// When calling the method, we pass **arguments** to its **paramenters**
// in this scenario, we are passing 5 to x and 6 to y
int result = calc.Add(5,6);
}
Полиморфизм
Полиморфизм — это когда один и тот же метод имеет несколько функций.
public class Calculator
{
/// returns the sum of a and b
public int Add(int a, int b)
{
return a + b;
}
// returns the sum of a, b and c
public int Add(int a, int b, int c)
{
return a + b + c;
}
}
В примере класс калькулятора имеет два метода для добавления значений, один из которых получает 2 аргумента, а другой — 3 аргумента.
Только полноправные пользователи могут оставлять комментарии. Аутентифицируйтесь пожалуйста, используя сервисы.