Ano ang Dynamic na Uri sa C#

Ano Ang Dynamic Na Uri Sa C



Ang dynamic na uri ay unang ipinakilala sa C# na bersyon 4.0, ang dynamic na uri ay nagbibigay-daan upang magdeklara ng mga variable na may pabago-bago mga keyword. Nangangahulugan ito na ang uri ng variable ay tinutukoy sa panahon ng pagpapatupad ng programa, sa halip na sa panahon ng yugto ng compilation. Ang flexibility na ito ay nagpapatunay na kapaki-pakinabang kapag nakikitungo sa data na ang uri ay nananatiling hindi alam hanggang sa runtime.

Ano ang Dynamic na Pag-type

Ang dynamic na pag-type ay nagbibigay-daan para sa pagtatalaga ng iba't ibang uri ng mga halaga sa parehong variable sa panahon ng runtime. Hindi tulad ng static na pag-type, kung saan ang uri ng variable ay tinutukoy sa oras ng pag-compile at nananatiling maayos, ang dynamic na pag-type ay nag-aalok ng flexibility sa pamamagitan ng pagtukoy ng uri sa runtime batay sa nakatalagang halaga. Tinatanggal nito ang pagsusuri ng uri ng compile-time sa pamamagitan ng pagpapaliban nito sa runtime.

Sa dynamic na pag-type, hindi ginagawa ng compiler ang type-checking sa panahon ng compilation. Sa halip, ang uri ng variable ay tinutukoy sa runtime batay sa nakatalagang halaga. Nagbibigay-daan ito para sa late binding, kung saan ang mga tawag sa pamamaraan, at access ng miyembro ay dynamic na nareresolba batay sa aktwal na uri ng object.







Paano gamitin ang Dynamic na Uri sa C#

Upang gumamit ng dynamic na uri sa C#, magdedeklara ka lang ng variable gamit ang dynamic na keyword. Halimbawa:



dynamic na myVariable = 'Hello, Mundo!' ;

Sa halimbawang ito, ang myVariable ay idineklara bilang isang dynamic na variable at itinalaga ang value na 'Hello, World!'. Sa runtime, ang uri ng myVariable ay matutukoy na isang string.



Halimbawa ng Paggamit ng Dynamic na Uri sa C#

Ipinapakita ng code na ito ang paggamit ng dynamic na keyword sa C#:





gamit ang System ;
programa sa pampublikong klase
{
pampubliko static walang bisa Pangunahing ( )
{
dynamic na myDynamicVariable = 42 ;
Console. WriteLine ( 'Halaga: {0}, Uri: {1}' , myDynamicVariable , myDynamicVariable. GetType ( ) ) ;

myDynamicVariable = 'Hello World!' ;
Console. WriteLine ( 'Halaga: {0}, Uri: {1}' , myDynamicVariable , myDynamicVariable. GetType ( ) ) ;

myDynamicVariable = mali ;
Console. WriteLine ( 'Halaga: {0}, Uri: {1}' , myDynamicVariable , myDynamicVariable. GetType ( ) ) ;

myDynamicVariable = PetsaOras. Ngayon ;
Console. WriteLine ( 'Halaga: {0}, Uri: {1}' , myDynamicVariable , myDynamicVariable. GetType ( ) ) ;

MyCustomFunction ( myDynamicVariable ) ;
}

pampubliko static walang bisa MyCustomFunction ( dynamic na data )
{
Console. WriteLine ( 'Custom na Output ng Function: {0}' , datos ) ;
}
}

Ang dynamic na keyword ay nagbibigay-daan sa isang variable na dynamic na mai-type, ibig sabihin, ang uri nito ay maaaring magbago sa runtime. Sa code, isang variable na pinangalanan myDynamicVariable ay idineklara bilang dynamic at sa simula ay itinalaga ang isang integer value na 42. Pagkatapos ay ipi-print ito kasama ang uri nito gamit ang Console.WriteLine.

Susunod, ang myDynamicVariable ay itinalaga ng isang string value ('Hello World!') at muling naka-print kasama ang uri nito. Ang parehong proseso ay inuulit para sa isang Boolean na halaga at sa wakas para sa kasalukuyang petsa at oras na nakuha gamit ang DateTime.Now.



Kasama rin sa code ang MyCustomFunction na kumukuha ng data ng dynamic na parameter at nagpi-print nito. Ang myDynamicVariable function ay tinatawag na isang argument, na nagpapakita na ang mga dynamic na variable ay maaaring ipasa sa mga function at ang kanilang uri ay maaaring matukoy sa runtime.

Konklusyon

Ang dynamic na uri sa C# 4.0 ay nagbibigay-daan sa mga variable na ideklara nang hindi tinukoy ang kanilang uri, na nakakatulong kapag nagtatrabaho sa data ng mga hindi kilalang uri sa runtime. Ang dynamic na pag-type ay nagbibigay-daan sa compiler na laktawan ang type-checking sa panahon ng compilation. Sa halip, ang uri ng variable ay tinutukoy kapag tumatakbo ang programa, batay sa halagang hawak nito. Magbasa pa tungkol sa dynamic na uri sa artikulong ito.