Funkcje w C#
Funkcja to blok kodu, który może być wielokrotnie wywoływany w trakcie działania programu.
Definicja funkcji składa się z typu zwrotnego, nazwy, nawiasu z parametrami oraz instrukcji wewnątrz bloku kodu.
Funkcje wywołuje się przez podanie jej nazwy z nawiasem okrągłym.
Funkcje o typie void nie zwracają żadnej wartości. Funkce zwracające wartość muszą zawierać instrukcję return;
void DisplayDate()
{
Console.WriteLine(DateTime.Now);
}
DisplayDate();
Funkcja zwracająca wartość typu float.
float a = GetNumericInput();
float b = GetNumericInput();
float area = a * b;
Console.WriteLine("Area = " + area);
float GetNumericInput()
{
Console.Write("Provide input: ");
if (float.TryParse(Console.ReadLine(), out float a))
{
return a;
}
return -1f;
}
Funkcja wywołująca się do skutku (rekurencja)
float GetNumericInput()
{
Console.Write("Provide float input: ");
if (float.TryParse(Console.ReadLine(), out float a))
{
return a;
}
else
{
return GetNumericInput();
}
}
Console.WriteLine(GetNumericInput() * 2);
Funkcja z parametrem
float GetNumericInput(string msg)
{
Console.Write(msg);
if (float.TryParse(Console.ReadLine(), out float a))
{
return a;
}
else
{
return GetNumericInput(msg);
}
}
float a = GetNumericInput("Provide a: ");
float b = GetNumericInput("Provide b: ");
Console.WriteLine($"Area: {a*b}");
Przeciążanie funkcji
Numerico num = new();
float a = num.GetNumericInput("Provide a: ");
float b = num.GetNumericInput("Provide b: ");
Console.WriteLine($"Area: {a * b}");
class Numerico()
{
public float GetNumericInput()
{
Console.Write("Provide float input: ");
if (float.TryParse(Console.ReadLine(), out float a))
{
return a;
}
else
{
return GetNumericInput();
}
}
public float GetNumericInput(string msg)
{
Console.Write(msg);
if (float.TryParse(Console.ReadLine(), out float a))
{
return a;
}
else
{
return GetNumericInput(msg);
}
}
}