Dynamic动态类的出现让C#具有了弱语言类型的特性,编译器在编译的时候不再对类型进行检查。
工作中经常遇到下面的场景,通过请求获取到一个JSON字符串,而我们又对返回的对象类型一无所知或者仅仅想取到其中某字段的值,此时采用dynamic来进行调用非常方便。
代码示例:创建一个控制台应用程序,需要引用Newtonsoft.Json
using System;
namespace DynamicDemo
{
class Program
{
static void Main(string[] args)
{
string jsonStr = "{\"name\":\"zhangsan\",\"age\":20}";
dynamic obj = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonStr);
Console.WriteLine(obj.name);
Console.WriteLine(obj.age);
Console.ReadLine();
}
}
}
运行结果: