This article is currently in the process of being translated into Polish (~99% done).
Methods (functions)
Podczas, gdy właściwości i pola mogą być uważane za bierne części klasy, metody są aktywne. One będą wykonywały jedną lub więcej akcji i w końcu zwrócą wynik. W innych językach programowania są one czasem nazywane functions lub "funcs", ale w C#, tam, gdzie one należą do klasy, są one nazywane metodami. Metody są czasem bardzo użyteczne, ponieważ pozwalają one na hermetyzowanie część funkcjonalności metody, którą możesz później wywołać ponownie z innych miejsc.
Metodę definiujemy w ten sposób:
<visibility> <return type> <name>(<parameters>)
{
<method code>
}
A tu mamy bardzo podstawowy przykład:
public int AddNumbers(int number1, int number2)
{
return number1 + number2;
}
Ta podstawowa metoda doda dwie liczby i zwróci wynik. Przeanalizujmy jej części:
- public oznacza dostępność metody (więcej o tym w dalszej części kursu)
- int to zwracany typ. Jeśli nie chcesz, żeby twoja metoda zwracala cokolwiek, użyj słowa kluczowego void
- AddNumbers to nazwa metody
- (int number1, int number2) -to są parametry (więcej o nich później). Parametry są opcjonalne, możesz zostawić puste miejsce między nawisami. Nawiasy nie są opcjonalne.
- Wewnątrz metody (między nawiasami klamrowymi), znajduję się kod metody. Może on zawierać jedną lub wiele linii kodu.
Aby wykonać metodę, napisz jej nazwę z dwoma nawiasami na końcu a w środku tych nawiasów wpisz parametry (jeżeli metoda ma jakieś) i średnik ( ; ) jak to:
AddNumbers(3, 39);
Przez to, że metody są zdefiniowane w klasach, możesz wywołać metodę na innej klasie, niż w tej, której teraz jesteś. Jeśli to prawda, powinieneś sprefiksować wywołanie metody z nazwą obiektu, lub w tym scenariuszu - metody static (więcej o nich później), nazwa klasy. Tutaj jest właśnie przykład, w którym wywołujemy metodę AddNumbers(), która była położona w innej klasie o nazwie MathHelper:
public void DoMath()
{
MathHelper mathHelper = new MathHelper();
int result = mathHelper.AddNumbers(4, 38);
Console.WriteLine(result);
}
Typy zwrócenia metod
Pogadajmy więcej o typach return. W przykładach powyżej, zdefiniowaliśmy metodę z integer jak typ return, ale jest dozwolone zwrócenie każdy inny typ daty C#. Tak naprawdę, możesz nawet zadeklarować metodę, która nic nie zwraca, tak jak zobaczyliśmy z naszą metodą DoMath() powyżej. Zauważ, że zamieniłem int ze słowem kluczowym void, co oznacza, że ta metoda nie powinna zwrócić niczego. W niektórych językach pgoramowania, funkcje bez typu zwrócenia nazywamy procedures, ale w C#, one zawsze były nazywane metodami.
Powinieneś mieć świadomość, że jeśli zadeklarujesz typ return dla metody, BĘDZIESZ musiał zwrócić coś - inaczej kompilator od razu będzie narzekać:
public int AddNumbers(int number1, int number2)
{
Console.WriteLine(number1 + number2);
}
Compiler error: AddNumbers(int, int)': not all code paths return a value
To oznacza, że potrzebujesz jednego (lub więcej) słów return w metodzie, jeśli zadeklarowała typ return. Możesz potrzebować więcej niż jeden na sytuacje, w, których jest wiele możliwych ścieżek kodu, jak ta:
public int AddLargeNumbers(int number1, int number2)
{
if((number1 > 1000) && (number2 > 1000))
{
return number1 + number2;
}
return 0;
}
W tej sytuacji, potrzebujemy też drugiego komunikatu return - jeśli zostanie pominięty, kompilator będzie narzekać, ponieważ nasze instrukcje warunku mogłyby sprzeciwić się pierwszemu komunikatu return.
Podsumowanie
Metody pozwalają na hermetyzację i ponowne wykorzystanie funkcjonalności z kilku miejsc. Dając metodzie parametry, możesz dostać różne wyniki. Użyliśmy trochę parametrów w przykładach powyżej, lecz w następnym artykule, zajrzymy głębiej w temat parametrów metod.