弱类型dynamic与var

dynamic与var都可代替任何类型

var关键字是C# 3.0开始新增的特性,称为推断类型。

  1、必须在定义时初始化

  2、一但初始化完成就不能再给变量赋与初始化值类型不同的值

  3、var要求是局部变量

  4、使用var定义变量和object不同,它在效率上和使用强类型方式定义变量完全一样

dynamic是FrameWork4.0的新特性。

  1、dynamic的出现让C#具有了弱语言类型的特性。

  2、编译器在编译的时候不再对类型进行检查,编译期默认dynamic对象支持你想要的任何特性。

 class Program
    {
        static void Main(string[] args)
        {
            dynamic dyna = new DynamicSample(); //此处的dynamic可换成var,var能智能识别出dyna的实际类型,用dynamic不能智能识别但也不会报错.
            int num = dyna.Add(1, 2);
            Console.WriteLine(num);
            Console.ReadKey();
        }
    }
    public class DynamicSample
    {
        public string Name { get; set; }

        public int Add(int a, int b)
        {
            return a + b;
        }
    }
原文地址:https://www.cnblogs.com/xbblogs/p/6017321.html