C# dynamic類型


dynamic關鍵字可充當C#類型系統中的靜態類型聲明。這樣,C#就獲得了動態功能,同時仍然作為靜態類型化語言而存在。

Var與dynamic:

var實際上編譯器拋給我們的語法糖,一旦被編譯,編譯器就會自動匹配var變量的實際類型,並用實際類型來替換該變量的聲明,等同於我們在編碼時使用了實際類型聲明。而dynamic被編譯后是一個Object類型,編譯器編譯時不會對dynamic進行類型檢查。

 

dynamic與反射  

以前我們這樣使用反射: 

public  class  DynamicSample
{
public  string  Name {  get set ; }
 
public  int  Add( int  a,  int  b)
{
return  a + b;
}
}
DynamicSample dynamicSample =  new  DynamicSample();  //create instance為了簡化演示,我沒有使用反射
var  addMethod =  typeof (DynamicSample).GetMethod( "Add" );
int  re = ( int )addMethod.Invoke(dynamicSample,  new  object [] { 1, 2 });

 現在,我們有了簡化的寫法:

dynamic dynamicSample2 =  new  DynamicSample();
int  re2 = dynamicSample2.Add(1, 2);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM