Wat is dynamisch type in C#

Wat Is Dynamisch Type In C



Het dynamische type werd voor het eerst geïntroduceerd in C# versie 4.0, dynamisch type maakt het mogelijk om variabelen te declareren dynamisch trefwoorden. Het betekent dat het type van de variabele wordt bepaald tijdens de uitvoering van het programma, in plaats van tijdens de compilatiefase. Deze flexibiliteit is gunstig bij het omgaan met gegevens waarvan het type tot runtime onbekend blijft.

Wat is dynamisch typen

Dynamisch typen maakt het mogelijk om tijdens runtime verschillende soorten waarden aan dezelfde variabele toe te wijzen. In tegenstelling tot statisch typen, waarbij het type variabele tijdens het compileren wordt bepaald en vast blijft, biedt dynamisch typen flexibiliteit door het type tijdens runtime te bepalen op basis van de toegewezen waarde. Het elimineert typecontrole tijdens het compileren door het uit te stellen naar runtime.

Bij dynamisch typen wordt tijdens het compileren geen typecontrole uitgevoerd door de compiler. In plaats daarvan wordt het type van de variabele tijdens runtime bepaald op basis van de toegewezen waarde. Dit maakt late binding mogelijk, waarbij methodeaanroepen en lidtoegang dynamisch worden opgelost op basis van het werkelijke type object.







Dynamisch type gebruiken in C#

Om dynamisch type in C# te gebruiken, declareert u eenvoudig een variabele met behulp van het dynamische trefwoord. Bijvoorbeeld:



dynamische mijnVariabele = 'Hallo Wereld!' ;

In dit voorbeeld wordt myVariable gedeclareerd als een dynamische variabele en wordt de waarde 'Hello, World!' toegekend. Tijdens runtime wordt bepaald dat het type myVariable een tekenreeks is.



Voorbeeld van het gebruik van dynamisch type in C#

Deze code demonstreert het gebruik van het dynamische sleutelwoord in C#:





systeem gebruiken ;
programma van de openbare klasse
{
openbaar statisch leegte Voornaamst ( )
{
dynamisch mijnDynamicVariable = 42 ;
Troosten. Schrijf lijn ( 'Waarde: {0}, Type: {1}' , mijnDynamischeVariabele , mijnDynamischeVariabele. GetType ( ) ) ;

mijnDynamischeVariabele = 'Hallo Wereld!' ;
Troosten. Schrijf lijn ( 'Waarde: {0}, Type: {1}' , mijnDynamischeVariabele , mijnDynamischeVariabele. GetType ( ) ) ;

mijnDynamischeVariabele = vals ;
Troosten. Schrijf lijn ( 'Waarde: {0}, Type: {1}' , mijnDynamischeVariabele , mijnDynamischeVariabele. GetType ( ) ) ;

mijnDynamischeVariabele = Datum Tijd. Nu ;
Troosten. Schrijf lijn ( 'Waarde: {0}, Type: {1}' , mijnDynamischeVariabele , mijnDynamischeVariabele. GetType ( ) ) ;

MyCustomFunctie ( mijnDynamischeVariabele ) ;
}

openbaar statisch leegte MyCustomFunctie ( dynamische gegevens )
{
Troosten. Schrijf lijn ( 'Uitvoer aangepaste functie: {0}' , gegevens ) ;
}
}

Met het dynamische sleutelwoord kan een variabele dynamisch worden getypt, wat betekent dat het type tijdens runtime kan veranderen. In de code wordt een variabele met de naam mijnDynamischeVariabele wordt gedeclareerd als dynamisch en krijgt aanvankelijk een geheel getal van 42 toegewezen. Het wordt vervolgens samen met het type afgedrukt met behulp van de Console.WriteLine.

Vervolgens wordt aan myDynamicVariable een tekenreekswaarde toegewezen ('Hello World!') en opnieuw afgedrukt met het type. Hetzelfde proces wordt herhaald voor een Booleaanse waarde en ten slotte voor de huidige datum en tijd verkregen met DateTime.Now.



De code bevat ook een MyCustomFunction die dynamische parametergegevens opneemt en afdrukt. De functie myDynamicVariable wordt een argument genoemd, waarmee wordt aangetoond dat dynamische variabelen kunnen worden doorgegeven aan functies en dat hun type tijdens runtime kan worden bepaald.

Conclusie

Met het dynamische type in C# 4.0 kunnen variabelen worden gedeclareerd zonder hun type op te geven, wat handig is bij het werken met gegevens van onbekende typen tijdens runtime. Dynamisch typen stelt de compiler in staat typecontrole over te slaan tijdens het compileren. In plaats daarvan wordt het type van de variabele bepaald wanneer het programma wordt uitgevoerd, op basis van de waarde die het bevat. Lees meer over dynamisch type in dit artikel.