Dynamic範例

摘要:Dynamic範例

	static void Dynamic()
        {
            //不用Dynamic時,需要用反射才能得知目標
            object o = Calculator.GetCalculator();            
            Type t = o.GetType();
            object t1 = t.InvokeMember("Add", BindingFlags.Default | BindingFlags.InvokeMethod, null, o, new object[] { 10, 20 });
            Console.WriteLine(t1);
            //使用dynamic
            dynamic calc = Calculator.GetCalculator();            
            int r = calc.Add(2, 3);  //注意,這裡的Add沒有intellisense的功能
            Console.WriteLine(r);
        }
class Calculator
    {
        public int Add(int a, int b)
        {
            return a + b;
        }

        public static object GetCalculator()
        {
            return new Calculator();
        }
    }