1A motorháztető alatt: a rejtett Main
A két program pontosan ugyanaz — a bal oldalit írod te,
a jobb oldalit készíti belőle a fordító:
Top-level (amit írsz)
Console.WriteLine("Helló!");
Klasszikus forma (amivé válik)
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Helló!");
}
}
- A
Main a program
belépési pontja: indításkor a futtatókörnyezet ezt
a metódust keresi meg és hívja — minden innen indul.
- A top-level írásmód tehát nem „másik nyelv”, hanem
rövidítés: a fordító a fájl utasításait egy rejtett
Program osztály
Main metódusába teszi. Ezért volt szabály
az A6 óta, hogy top-level utasítás csak egyetlen fájlban lehet
(CS8802): egy programnak egy belépési pontja
van.
- A
string[] args a programnak induláskor
átadható szavak listája — a szögletes zárójel tömböt
jelöl, ez az E blokk témája. Addig elég annyi: ott van, de nem
kötelező használni.
3A public megfejtése — és a teljes fejléc
A Konzol.cs metódusait a
Program.cs-ből hívjuk — másik
fájlból. Ehhez kell a
public: azt mondja, a
metódus kívülről is elérhető. Nélküle csak a saját
osztályán belül lenne hívható. (A láthatósági szintek teljes
rendszere — private, internal és társai — a H blokkban jön.)
És ezzel a pillanattal a B8-as fejléc minden szava a helyére
került:
public static void Siker(string szoveg)
| Szó | Jelentés | Mióta érted? |
public | más fájlokból is hívható | ma |
static | az osztály nevén át, objektum nélkül hívható | ma |
void | nem ad vissza értéket | D1 |
Siker | a metódus neve (PascalCase, igés) | D1 |
(string szoveg) | egy string paramétert vár | D2 |
💡 ÍGÉRET TELJESÍTVE
A B8-ban azt írtuk a Konzol.cs tetejére:
„Hogy BELÜL hogyan működik, azt a D blokkban tanuljuk.” Ez a pillanat
az: a fejléc minden szavát érted — és mostantól magad is írsz
ilyeneket.
4A klasszikus forma a gyakorlatban
Miért kell ismerned, ha a top-level rövidebb? Mert a világ nagy része a
klasszikus formát használja: tankönyvek, régebbi példakódok, vizsga- és
versenyfeladatok, generált projektek — és a csapattársaid kódja is
lehet ilyen. Mindkettőt folyékonyan kell olvasnod.
Klasszikus formában a saját metódusok a Main
mellé kerülnek, az osztályon belülre — és ki kell írni
eléjük a static-ot:
class Program
{
static void Main(string[] args)
{
Koszones();
Console.WriteLine("A program dolgozik…");
}
static void Koszones()
{
Console.WriteLine("Üdv a programban!");
}
}
Az átírás szabályai top-levelből klasszikusba:
- az utasítások a
Main törzsébe
kerülnek;
- a fájl végi metódusok a
Main
mellé, static
kulcsszóval;
- minden mást (Konzol.cs, a program logikája) változatlanul
hagyhatsz.
ℹ️ A VS IS FELKÍNÁLJA
Új projekt létrehozásakor a Visual Studio a „Do not use
top-level statements” jelölőnégyzettel a klasszikus sablont
adja — a gyakorlatban ki is próbáljuk.