using System;
using static System.Console;
namespace Dynamic1
{
class Program
{
static void Main(string[] args)
{
object obj = 10;
WriteLine(obj.GetType());
//使用object類型此時需要強制類型轉換,不能編譯器會出現編譯錯誤
obj = (int)obj + 10;
dynamic a = 400;
WriteLine(a.GetType());
// 對于動态類型而言,編譯時編譯器根本不知道它是什麼類型,
// 是以編譯器就判斷不了a的類型了,是以下面的代碼不會出現編譯時錯誤
// 因為a有可能是int類型,編譯器不知道該變量的具體類型不能憑空推測類型
// 當然也就不能提示我們編譯時錯誤了
a += 100;
WriteLine(Add(a,a));
ReadKey();
}
static dynamic Add(dynamic a,dynamic b)
{
return a + b;
}
static Tresult AddS<T1, T2, Tresult>(T1 left,T2 right,Func<T1,T2,Tresult> AddMethod )
{
return AddMethod(left, right);
}
}
}