Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A C# és a Python hasonló fogalmakat használ. Ezek az ismerős szerkezetek segítenek a C# elsajátításában, ha már ismeri a Pythont.
- Objektumorientált: Mind a Python, mind a C# objektumorientált nyelv. A Pythonban az osztályokra vonatkozó összes fogalom C#-ban is érvényes, még akkor is, ha a szintaxis eltér.
- Platformfüggetlen: A Python és a C# platformfüggetlen nyelvek. A mindkét nyelven írt alkalmazások számos platformon futtathatók.
- Szemétgyűjtés: Mindkét nyelv automatikus memóriakezelést alkalmaz szemétgyűjtéssel. A futtatókörnyezet visszaszerzi a memóriát a nem hivatkozott objektumokból.
- Erősen típusos: A Python és a C# is erősen típusos nyelv. A típus kényszerítése nem implicit módon történik. Vannak különbségek később, mivel a C# statikusan van beírva, míg a Python dinamikusan van beírva.
-
Async / Await: A Python
asyncésawaitfunkcióját közvetlenül a C#asyncésawaittámogatása ihlette. -
Mintaegyezés: A Python kifejezése
matchés a mintaegyezés hasonló a C#mintaegyeztetőswitch. Segítségével megvizsgálhat egy összetett adatkifejezést, hogy megállapítsa, megfelel-e egy mintának. -
Utasítási kulcsszavak: A Python és a C# számos kulcsszót oszt meg, például
if,else,whilefor, és sok más. Bár nem minden szintaxis azonos, elég hasonlóság van ahhoz, hogy a C#-t elolvassa, ha ismeri a Pythont.
A C# elsajátításához megismerheti azokat a fontos fogalmakat, amelyekben a C# eltér a Pythontól:
-
Behúzás és tokenek: A Pythonban az újsorok és a behúzás első osztályú szintaktikai elemek. A C#-ban a térköz nem jelentős. Tokenek, mint például
;elválasztják az utasításokat, és más tokenek, például{és}, vezérlik a blokk hatókörétifés más blokkutasításokat. Az olvashatóság érdekében azonban a legtöbb kódolási stílus (beleértve az ezekben a dokumentumokban használt stílust is) behúzást használ, hogy kiemelje a{és}által meghatározott blokktartományokat. - Statikus gépelés: A C#-ban a változó deklarációja tartalmazza annak típusát. Ha egy változót egy másik típusú objektumhoz rendel, fordítóhiba keletkezik. A Pythonban a típus az újbóli hozzárendeléskor változhat.
- Null értékű típusok: A C# változók lehetnek null értékűek vagy nem null értékűek. A nem nullázható típus az, amely nem lehet null (vagy semmi). Mindig érvényes objektumra hivatkozik. Ezzel szemben a null értékű típus érvényes objektumra vagy nullra hivatkozhat.
-
LINQ: A Language Integrated Queryt (LINQ) alkotó lekérdezési kifejezési kulcsszavak nem kulcsszavak a Pythonban. A Python-kódtárak azonban hasonló
itertoolsmore-itertoolspy-linqfunkciókat biztosítanak. - Generikumok: A C# generikumok a C# statikus típusokat használják a típusparaméterekhez megadott argumentumok érvényesítése érdekében. Előfordulhat, hogy egy általános algoritmusnak meg kell adnia az argumentumtípusnak megfelelő korlátozásokat.
Végül a Python egyes funkciói nem érhetők el a C#-ban:
- Szerkezeti (kacsa) gépelés: A C#-ban a típusok nevei és deklarációi vannak. A csuplok kivételével az azonos szerkezetű típusok nem cserélhetők fel.
- REPL: A C#-nak nincs Read-Eval-Print Loop (REPL) a gyors prototípus-megoldásokhoz.
-
Jelentős térköz: Helyesen kell használnia a kapcsos zárójeleket
{, hogy jelölje a blokk hatókörét}.
A C# tanulása zökkenőmentes, ha ismeri a Pythont. A nyelvek hasonló fogalmakkal és hasonló kifejezésekkel rendelkeznek.