由于C#是一种强类型语言,因此每个变量和常量都有一个预定义的类型。在使用任何变量之前,我们必须告诉编译器变量将存储什么类型的值。
如果不确定类型,则使用动态编程进行处理。动态关键字支持动态编程。
dynamic关键字用于声明动态类型。动态类型告诉编译器该对象已定义为动态对象,并在编译时跳过类型检查,将类型检查延迟到运行时。检查所有语法,并在运行时引发错误。
using System; namespace DemoDynamicKeyword{ class Program{ static void Main(string[] args){ dynamic MyDynamicVar = 100; Console.WriteLine("Value: {0}, Type: {1}", MyDynamicVar, MyDynamicVar.GetType()); MyDynamicVar = "Hello World!!"; Console.WriteLine("Value: {0}, Type: {1}", MyDynamicVar, MyDynamicVar.GetType()); MyDynamicVar = true; Console.WriteLine("Value: {0}, Type: {1}", MyDynamicVar, MyDynamicVar.GetType()); MyDynamicVar = DateTime.Now; Console.WriteLine("Value: {0}, Type: {1}", MyDynamicVar, MyDynamicVar.GetType()); } } }
输出结果
上面示例的输出如下。
Value: 100, Type: System.Int32 Value: Hello World!!, Type: System.String Value: True, Type: System.Boolean Value: 01-01-2014, Type: System.DateTime