Függvények és metódusok¶
A Python függvényeinek C#-ban a metódusok felelnek meg. Használhatunk beépített metódusokat, vagy írhatunk sajátot. A C#-ban a paraméterek és a visszatérési érték típusát meg kell adni.
Beépített metódusok¶
Matematikai műveletek¶
| Feladat | C# | Python |
|---|---|---|
| Abszolút érték | Math.Abs(-5) |
abs(-5) |
| Minimum, maximum | Math.Min(5, 6), Math.Max(5, 6) |
min(5, 6), max(5, 6) |
| Négyzetgyök | Math.Sqrt(25) |
math.sqrt(25) |
| Hatvány | Math.Pow(2, 3) |
2 ** 3 |
| Lefelé, felfelé kerekítés | Math.Floor(1.7), Math.Ceiling(1.2) |
math.floor(1.7), math.ceil(1.2) |
| Pí | Math.PI |
math.pi |
Kerekítés és véletlen szám¶
Math.Round eredménye szám, míg a F2 formátum csak a kiírt szöveget alakítja. A C# alapértelmezett kerekítése a pontos félértékeknél páros szám felé történik; ettől eltérő szabályt külön kell kérni.
double ertek = 1.67777;
Console.WriteLine(Math.Round(ertek, 2));
Console.WriteLine($"{ertek:F2}");
int dobas = Random.Shared.Next(1, 7); // 1 és 6 között
Console.WriteLine(dobas);
Pythonban véletlen egészhez random.randint(1, 6) használható; a határok itt mindketten benne vannak, míg a C# Next(1, 7) felső határa kizárt.
Sztringmetódusok¶
string szoveg = " Példa szöveg ";
Console.WriteLine(szoveg.Length);
Console.WriteLine(szoveg.ToUpper());
Console.WriteLine(szoveg.ToLower());
Console.WriteLine(szoveg.Trim());
Console.WriteLine(szoveg.Replace("Példa", "Másik"));
Console.WriteLine(szoveg.Contains("szöveg"));
Console.WriteLine(szoveg.IndexOf("szöveg"));
string[] szavak = szoveg.Trim().Split(' ');
string resz = szoveg.Substring(1, 5); // "Példa"
A Pythonban többnyire len(szoveg), upper(), lower(), strip(), replace(), in, find(), split() és szeletelés (szoveg[1:6]) felel meg ezeknek. A C#-ban a sztringek változatlanok: a metódusok új értéket adnak vissza.
Karaktervizsgálat¶
char betu = 'A';
Console.WriteLine(char.IsLetter(betu)); // true
Console.WriteLine(char.IsDigit(betu)); // false
Console.WriteLine(char.IsUpper(betu)); // true
Console.WriteLine(char.ToLower(betu)); // a
Console.WriteLine(char.IsWhiteSpace(' ')); // true
Pythonban egykarakteres sztringen például isalpha(), isdigit(), isupper() használható.
Dátum és idő¶
A DateOnly csak dátumot, a TimeOnly csak időt, a DateTime dátumot és időt tárol. A Python date, time és datetime osztályai hasonló szerepűek.
DateOnly datum = new(2026, 9, 27);
DateOnly ma = DateOnly.FromDateTime(DateTime.Today);
Console.WriteLine($"Év: {datum.Year}, hónap: {datum.Month}, nap: {datum.Day}");
DateOnly jovoHet = datum.AddDays(7); // az eredetit nem módosítja
TimeOnly ido = new(12, 30);
TimeOnly kesobb = ido.AddHours(1);
Console.WriteLine($"{ido:HH:mm} → {kesobb:HH:mm}");
DateTime most = DateTime.Now;
DateTime holnap = most.AddDays(1);
Console.WriteLine(holnap);
Ha különböző időzónák között kell időpontokat tárolni vagy átadni, a DateTimeOffset általában egyértelműbb választás.
Saját metódusok¶
A modern konzolprojekt felső szintű utasításai után helyi függvényt írhatunk. A void azt jelenti, hogy nincs visszatérési érték.
Alapértelmezett paraméter¶
void Koszon(string nev = "vendég")
{
Console.WriteLine($"Szia, {nev}!");
}
Koszon();
Koszon("Anna");
Osztályon belül a metódus alakja például public static int Osszead(int a, int b). A static azt jelenti, hogy példány létrehozása nélkül hívható. A példányhoz tartozó metódusokat az OOP-fejezetben használjuk.
Feladatok¶
- Kérj be vesszővel elválasztott neveket, majd a
Split(',')segítségével írd ki őket külön sorba! - Írj
Atlagnevű metódust, amely kétdoubleparaméterből visszaadja az átlagot! - Írj
Parosnevű metódust, amely egy egész számrólboolértékben közli, hogy páros-e!