如果我们不确定要存储在变量中的值的类型,该怎么办?如何在 C# 中处理这种情况?


由于 C# 是一种强类型语言,因此每个变量和常量都具有预定义的类型。在使用任何变量之前,我们必须告诉编译器该变量将存储哪种类型的值。

如果我们不确定类型,则可以使用动态编程来处理。动态编程由 **dynamic** 关键字支持。

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

更新于: 2020 年 8 月 4 日

67 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告