A C# statikusan típusos nyelv, ami azt jelenti, hogy mindennek már fordításkor van típusa. Azt, hogy egy értéket egy névhez rendelünk, a változó definiálásának nevezzük. Egy változót definiálhatsz úgy, hogy explicit módon megadod a típusát, vagy úgy, hogy hagyod, hogy a C# fordítója a hozzárendelt érték alapján következtessen a típusára (ezt nevezik típuskövetkeztetésnek). Ezért a következő két változódefiníció egyenértékű:
int explicitVar = 10; // Explicitly typed
var implicitVar = 10; // Implicitly typed
Egy változó értékét a = operátorral frissítheted. Miután definiáltad, a változó típusa soha nem változhat meg.
var count = 1; // Assign initial value
count = 2; // Update to new value
// Compiler error when assigning different type
// count = false;
A C# objektumorientált nyelv, és minden függvényt egy osztályban kell definiálni. Egy osztályt a class kulcsszóval definiálunk. Az objektumokat (vagy példányokat) a new kulcsszóval hozzuk létre.
class Calculator
{
// ...
}
var calculator = new Calculator();
Az osztályon belüli függvényt metódusnak nevezzük. Egy metódusnak nulla vagy több paramétere lehet. Minden paraméter típusát explicit módon meg kell adni, a paramétereknél nincs típuskövetkeztetés. Hasonlóképpen a visszatérési típust is explicit módon meg kell adni. A metódusok a return kulcsszóval adják vissza az értékeket. Ahhoz, hogy egy metódust más fájlok kódjából is meg lehessen hívni, hozzá kell adni a public hozzáférés-módosítót.
class Calculator
{
public int Add(int x, int y)
{
return x + y;
}
}
A metódusokat egy példányon pont (.) szintaxissal hívod meg: megadod a hívni kívánt metódus nevét, és minden paraméteréhez átadsz egy argumentumot. Az argumentumoknál opcionálisan megadhatod a hozzá tartozó paraméter nevét.
var calculator = new Calculator();
var sum_v1 = calculator.Add(1, 2);
var sum_v2 = calculator.Add(x: 1, y: 2);
A C#-ban a scope-ot a { és } karakterek határozzák meg.
A C# kétféle megjegyzést támogat. Az egysoros megjegyzéseket // előzi meg, a többsoros megjegyzéseket pedig a /* és */ közé írjuk.
Lucian barátnője éppen hazafelé tart, és Lucian még nem főzte meg az évfordulós vacsorájukat!
Ebben a feladatban kódot írsz majd, hogy segíts Luciannak elkészíteni egy pazar lasagnét a kedvenc szakácskönyvéből.
Négy részfeladatot kapsz, amelyek mind a lasagna elkészítésére fordított időhöz kapcsolódnak.
Definiáld a Lasagna.ExpectedMinutesInOven() metódust, amely nem vesz át egyetlen paramétert sem, és visszaadja, hány percig kell a lasagnának a sütőben lennie. A szakácskönyv szerint a várható sütési idő 40 perc:
var lasagna = new Lasagna();
lasagna.ExpectedMinutesInOven();
// => 40
Definiáld a Lasagna.RemainingMinutesInOven() metódust, amely paraméterként átveszi a lasagna tényleges sütőben töltött perceinek számát, és visszaadja, hány percet kell még a lasagnának a sütőben maradnia, az előző részfeladatban megadott várható sütési idő alapján.
var lasagna = new Lasagna();
lasagna.RemainingMinutesInOven(30);
// => 10
Definiáld a Lasagna.PreparationTimeInMinutes() metódust, amely paraméterként átveszi a lasagnára rakott rétegek számát, és visszaadja, hány percet töltöttél a lasagna előkészítésével, feltételezve, hogy egy réteg elkészítése 2 percet vesz igénybe.
var lasagna = new Lasagna();
lasagna.PreparationTimeInMinutes(2);
// => 4
Definiáld a Lasagna.ElapsedTimeInMinutes() metódust, amely két paramétert vesz át: az első paraméter a lasagnára rakott rétegek száma, a második pedig az, hogy hány percet töltött a lasagna a sütőben. A függvénynek vissza kell adnia, hány percet dolgoztál a lasagna elkészítésén, ami az előkészítési idő és a lasagna által a sütőben eddig eltöltött idő összege.
var lasagna = new Lasagna();
lasagna.ElapsedTimeInMinutes(3, 20);
// => 26
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) C# nyelvet 62 fogalom178 feladat segítségével, valódi emberi mentorálással, mindez ingyen.