C# dynamic 类型详解

简介

C# 中的 dynamic 是一种特殊类型,它允许在运行时确定对象的类型和成员,而不是在编译时。

dynamic 的定义

  • dynamic 是一种类型,它告诉编译器对其进行“动态类型解析”。

  • dynamic 类型的变量会跳过编译时类型检查,所有的操作会推迟到运行时进行。

  • 适合处理未知类型的对象,或需要与动态语言(如 PythonJavaScript)互操作的场景。

dynamic 的使用

动态类型赋值
dynamic obj = 10;  // 可以是整数
obj = "Hello";     // 可以变成字符串
obj = new {
   
    Name = "John", Age = 30 }; // 也可以是匿名类型
访问成员

动态对象的成员在运行时解析,因此可以访问任意成员:

如果访问了不存在的成员,运行时会抛出 RuntimeBinderException

dynamic obj = new {
   
    Name = "John", Age = 30 };
Console.WriteLine(obj.Name); // 输出: John
动态方法调用
dynamic math = new {
   
    Add = (Func<int, int, int>)((x, y) => x + y) };
Console.WriteLine(math.Add(2, 3)); 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值