Mi az a dinamikus gépelés?
A dinamikus gépelés lehetővé teszi különböző típusú értékek hozzárendelését ugyanahhoz a változóhoz futás közben. Ellentétben a statikus gépeléssel, ahol a változó típusa fordításkor kerül meghatározásra, és rögzített marad, a dinamikus gépelés rugalmasságot kínál azáltal, hogy a típust futás közben határozza meg a hozzárendelt érték alapján. Kiküszöböli a fordítási idejű típusellenőrzést azáltal, hogy futásidejűre halasztja.
Dinamikus gépelésnél a típusellenőrzést nem hajtja végre a fordító a fordítás során. Ehelyett a változó típusát a rendszer futás közben határozza meg a hozzárendelt érték alapján. Ez lehetővé teszi a késői összerendelést, ahol a metódushívások és a tagok hozzáférése dinamikusan oldódik fel az objektum tényleges típusa alapján.
A Dynamic Type használata C#-ban
A dinamikus típus használatához a C#-ban egyszerűen deklaráljon egy változót a dinamikus kulcsszó használatával. Például:
dinamikus myVariable = 'Helló Világ!' ;
Ebben a példában a myVariable dinamikus változóként van deklarálva, és a „Hello, World!” értéket kapja. Futás közben a myVariable típusa karakterlánc lesz.
Példa a dinamikus típus használatára C#-ban
Ez a kód bemutatja a dinamikus kulcsszó használatát C# nyelven:
rendszer segítségével ;
nyilvános osztály Program
{
nyilvános statikus üres Fő ( )
{
dinamikus myDynamicVariable = 42 ;
Konzol. WriteLine ( 'Érték: {0}, típus: {1}' , myDynamicVariable , myDynamicVariable. GetType ( ) ) ;
myDynamicVariable = 'Helló Világ!' ;
Konzol. WriteLine ( 'Érték: {0}, típus: {1}' , myDynamicVariable , myDynamicVariable. GetType ( ) ) ;
myDynamicVariable = hamis ;
Konzol. WriteLine ( 'Érték: {0}, típus: {1}' , myDynamicVariable , myDynamicVariable. GetType ( ) ) ;
myDynamicVariable = Dátum idő. Most ;
Konzol. WriteLine ( 'Érték: {0}, típus: {1}' , myDynamicVariable , myDynamicVariable. GetType ( ) ) ;
MyCustomFunction ( myDynamicVariable ) ;
}
nyilvános statikus üres MyCustomFunction ( dinamikus adatok )
{
Konzol. WriteLine ( 'Egyéni funkció kimenet: {0}' , adat ) ;
}
}
A dinamikus kulcsszó lehetővé teszi egy változó dinamikus beírását, ami azt jelenti, hogy a típusa futás közben változhat. A kódban egy változó nevű myDynamicVariable dinamikusnak van deklarálva, és kezdetben 42-es egész számot rendel hozzá. Ezután a Console.WriteLine segítségével kinyomtatja a típusával együtt.
Ezután a myDynamicVariable egy karakterlánc értéket kap („Hello World!”), és ismét kinyomtatja a típusát. Ugyanez a folyamat megismétlődik egy logikai érték és végül a DateTime.Now segítségével kapott aktuális dátum és idő esetében.
A kód tartalmaz egy MyCustomFunction-t is, amely dinamikus paraméteradatokat vesz és kinyomtat. A myDynamicVariable függvényt argumentumnak nevezzük, amely bemutatja, hogy a dinamikus változók átadhatók a függvényeknek, és típusuk futás közben meghatározható.
Következtetés
A C# 4.0 dinamikus típusa lehetővé teszi a változók deklarálását a típusuk megadása nélkül, ami hasznos, ha futás közben ismeretlen típusú adatokkal dolgozik. A dinamikus gépelés lehetővé teszi a fordító számára, hogy a fordítás során kihagyja a típusellenőrzést. Ehelyett a változó típusát a program futása során határozzák meg, a benne lévő érték alapján. A dinamikus típusról ebben a cikkben olvashat bővebben.