Wprowadzenie
Dzisiaj zagłębimy się w temat, który jest fundamentalny dla każdego programisty - funkcje. Funkcje pozwalają nam organizować kod, unikać powtórzeń i tworzyć bardziej czytelne i łatwiejsze w utrzymaniu programy. W tym artykule skupimy się na praktycznych przykładach tworzenia i używania funkcji w C#.
Co to są funkcje?
Funkcje (w C# często nazywane metodami) to bloki kodu, które wykonują określone zadanie. Możemy je wywoływać wielokrotnie, co znacznie upraszcza nasz kod i zwiększa jego czytelność.
Podstawowa struktura funkcji:
[modyfikator_dostępu] [typ_zwracany] NazwaFunkcji([parametry])
{
/* Ciało funkcji */
return [wartość]; /* Opcjonalnie, jeśli funkcja coś zwraca */
}
Przykład 1: Prosta funkcja
Zacznijmy od prostej funkcji, która wyświetla powitanie:
static void PowitajUzytkownika()
{
Console.WriteLine("Witaj w świecie funkcji C#!");
}
/* Użycie funkcji */
static void Main(string[] args)
{
PowitajUzytkownika();
}
Przykład 2: Funkcja z parametrami
Funkcje mogą przyjmować parametry, co zwiększa ich elastyczność:
static void PowitajOsobe(string imie)
{
Console.WriteLine($"Witaj, {imie}!");
}
/* Użycie funkcji */
static void Main(string[] args)
{
PowitajOsobe("Anna");
PowitajOsobe("Jan");
}
Przykład 3: Funkcja zwracająca wartość
Funkcje mogą również zwracać wartości:
static int Dodaj(int a, int b)
{
return a + b;
}
/* Użycie funkcji */
static void Main(string[] args)
{
int wynik = Dodaj(5, 3);
Console.WriteLine($"5 + 3 = {wynik}");
}
Przykład 4: Funkcje z wieloma parametrami i wartością domyślną
Możemy definiować funkcje z wieloma parametrami, a także ustawiać wartości domyślne:
static double ObliczCene(double cenaBazowa, double podatek = 0.23, bool czyPromocja = false)
{
double cena = cenaBazowa * (1 + podatek);
if (czyPromocja)
{
cena *= 0.9; /* 10% zniżki */
}
return Math.Round(cena, 2);
}
/* Użycie funkcji */
static void Main(string[] args)
{
Console.WriteLine($"Cena standardowa: {ObliczCene(100)}");
Console.WriteLine($"Cena z innym podatkiem: {ObliczCene(100, 0.08)}");
Console.WriteLine($"Cena promocyjna: {ObliczCene(100, czyPromocja: true)}");
}
Przykład 5: Rekurencja
Funkcje mogą wywoływać same siebie, co nazywamy rekurencją:
static int Silnia(int n)
{
if (n == 0 || n == 1)
return 1;
else
return n * Silnia(n - 1);
}
/* Użycie funkcji */
static void Main(string[] args)
{
Console.WriteLine($"Silnia z 5: {Silnia(5)}");
}
Przykład 6: Funkcje jako parametry
W C# funkcje mogą być przekazywane jako parametry do innych funkcji:
static double Operacja(double a, double b, Func<double, double, double> operacja)
{
return operacja(a, b);
}
static void Main(string[] args)
{
double wynikDodawania = Operacja(5, 3, (x, y) => x + y);
double wynikMnozenia = Operacja(5, 3, (x, y) => x * y);
Console.WriteLine($"5 + 3 = {wynikDodawania}");
Console.WriteLine($"5 * 3 = {wynikMnozenia}");
}
Dobre praktyki przy tworzeniu funkcji
1. Nazewnictwo: Używaj jasnych, opisowych nazw dla funkcji.
2. Pojedyncza odpowiedzialność: Każda funkcja powinna robić jedną rzecz, ale robić ją dobrze.
3. Długość: Staraj się, aby funkcje były krótkie i zwięzłe.
4. Parametry: Ogranicz liczbę parametrów do minimum.
5. Komentarze: Dodawaj komentarze do skomplikowanych funkcji, wyjaśniając ich działanie.
Podsumowanie
Funkcje są niezbędnym elementem w tworzeniu czystego, modularnego i łatwego w utrzymaniu kodu. Pozwalają na organizację logiki programu, unikanie powtórzeń i tworzenie bardziej czytelnych aplikacji. Jeśli chcesz pogłębić swoją wiedzę na temat funkcji i innych zaawansowanych koncepcji programowania w C#, zachęcam do sprawdzenia mojego szkolenia online "Zostań Programistą .NET". W szkoleniu tym szczegółowo omawiamy nie tylko funkcje, ale także wiele innych ważnych aspektów programowania, które pomogą Ci stać się skutecznym deweloperem .NET. Mam nadzieję, że ten artykuł był dla Ciebie pomocny i inspirujący. Jeśli masz jakiekolwiek pytania lub chcesz podzielić się swoimi doświadczeniami z używaniem funkcji w C#, nie wahaj się zostawić komentarza poniżej. Powodzenia w Twojej przygodzie z programowaniem!