Konstruktorokkal (Programming Guide c #), a Microsoft docs

Ebben a cikkben,

Minden alkalommal, amikor egy osztály vagy struktúra jön létre. A kivitelező. Konstruktőrök ugyanaz a neve, mint a neve egy osztály vagy struktúra, és általában inicializálja az adatok tagjai az új objektumot.







Az alábbi példa Taxi osztály nevét határozza meg egyszerű kivitelező. Ezután az üzemeltető létrehoz egy új példányt ebbe az osztályba. Taxi kivitelező hívják az új üzemeltető után azonnal az új objektum lesz memóriát.

A kivitelező, hogy nem veszi paraméterek hívják alapértelmezett konstruktor. alapértelmezett konstruktor nevezzük, ha egy példány jön létre az új üzemben. és az új érveket nem telt el. További információért lásd. Szakasz tervezők példányban.

Ha egy osztály statikus. C # fordító kiosztja osztályok nélkül konstruktőrök nyilvános alapértelmezett konstruktor, amely lehetővé teszi, hogy hozzon létre az esetekben az osztályok. További információkat. Lásd: Statikus osztályok és a statikus osztály tagjait.

Készítsen esetekben az osztály elnyomható, hogy a kivitelező saját, az alábbiak szerint:

További információkat. Lásd privát konstruktőrök.

Konstruktorokat struct típusú hasonlítanak osztály konstruktőrök, de struktúrákat nem tartalmaz kifejezetten az alapértelmezett konstruktor, ahogyan automatikusan a fordító. Ez a szerkesztő inicializálja minden mezőt struct alapértéke. További információt. Ld alapértékekre. Ebben az esetben az alapértelmezett konstruktor nevezzük, ha a struct segítségével létrehozott változó új. Például az alapértelmezett konstruktor használják a kódot az Int32 - ez biztosítja inicializálása értéke:







Ugyanakkor, az alábbi kódot okoz fordítóprogram hibát, mert nem használja az új. és mivel az eljárás során nem inicializált objektum:

Ezen túlmenően, a tárgyak alapján struktúrákat (beleértve az összes beépített numerikus típusok), akkor inicializálni vagy rendelni, majd használjuk a következő példa:

Ebben a tekintetben felhívja az alapértelmezett konstruktort az érték típusú opcionális.

Mindkét osztály és struktúrákat lehet határozni a konstruktőrök, hogy vegye paramétereket. Konstruktőrök veszi paramétereket kell meghívni az új üzemeltető vagy bázist. Osztályok és struktúrákat is meghatározhatjuk több konstruktőrök; hogy meghatározza az alapértelmezett konstruktor, egyikük nem szükséges. például:

Ez az osztály hozható létre az alábbi állítások:

A tervezők a bázis kulcsszót, hogy hívja az alap osztály konstruktora. Például:

Ebben a példában, az alap osztály konstruktora nevezzük végrehajtása előtt a megfelelő blokk azt. Base kulcsszó használható paraméterekkel vagy nélkülük. Bármilyen paramétereket a kivitelező lehet használni, mint paramétereket a bázis, vagy egy része a kifejezést. További információért lásd. A részben található.

Ha az alap osztály nem egy alapértelmezett konstruktor, a származtatott osztály kifejezetten meg kell hívni a szülő osztály konstruktora a bázis.

A konstruktor hívás egy másik kivitelező ugyanazt a tárgyat ezzel a kulcsszóval. Bázisként. ezt lehet használni vagy anélkül paraméterek és az összes beállítást a kivitelező opcióként áll rendelkezésre, illetve ennek részeként kifejezés. Például a második kivitelező az előző példában átírható ezt.

Az ezzel a kulcsszó a fenti példában azt eredményezte, hogy egy hívás, hogy a kivitelező:

A tervezők lehet jelölni nyilvános. privát. védett. belső, vagy védett belső. Ezek a hozzáférési módosítók meghatározzák, hogy a felhasználók az osztály képes lesz létrehozni egy osztályban. További információkat. Lásd Access módosítók.

A kivitelező lehet nyilvánítani statikus, a kulcsszó statikus. Statikus konstruktor automatikusan hívja előtt a hozzáférést a statikus mezők és tipikusan inicializálni a statikus osztály tagjait. További információkat. Lásd Statikus konstruktőrök.

C # Language Specification

További információért lásd. C # nyelv specifikációt. Leírás nyelv a végleges információforrás a szintaxis és használata a C # nyelvet.