天天看點

含有dynamic 類型的重載函數

看幾個例子即可明白,優先調用的是明确定義的類型。當沒有比對的類型的時候,才會調用含有dynamic類的重載函數。

 class program     {         static void main(string[] args)         {             int i = 3;             f(i);         }           static public void f(dynamic d)         {             console.writeline("dynamic ");             console.writeline(d);             console.writeline(d.gettype().tostring());         }           static public void f(int i)         {             console.writeline("int ");             console.writeline(i);             console.writeline(i.gettype().tostring());         }     }

含有dynamic 類型的重載函數

如果把i的類型改成dynamic,如下:

dynamic i = 3;

或者

var i = 3;

那麼得到的運作結果仍然是:

含有dynamic 類型的重載函數

隻有當i的類型是重載中沒有的時候,才會調用含有dynamic的重載方法。 比如:

static void main(string[] args)  {      double i = 3;       f(i);  }

含有dynamic 類型的重載函數

繼續閱讀