AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

C#特性聚焦:动态类型化对象、Duck 类型和多重分配

  • 2008-11-18
  • 本文字数:597 字

    阅读完需:约 2 分钟

在我们要深入研究第一个 C#特性之前,有必要知道微软许诺,任何在 C#中有的功能在 VB 中也会具通过某种形式来提供,反之亦然。不过他们没有必要以同样的方式来提供这些功能,语言之间还是希望继续有所区别。

随着动态语言和 DLR 日益增加的重要性,C#也需要能处理动态类型化的对象(Dynamically Typed Objects)。目前,通过对静态类进行反射,虽然能够实现后期调用,但这种方式却需要大量的代码。此外,对 DLR 对象的调用需要一个完全不同的,使用 了 DLR 反射函数的调用方式。

在 C#中,你可以简单地声明对象的静态类型为“dynamic”。就像 VB 的 Option Explicit Off 选项一样,它告诉编译器忽略必要的代码来解析运行时调用的方法绑定。在 IL 层面,被声明为 dynamic 的变量是一个 System.Object 类 型,附加了一个额外标签来标明它使用动态调用语义。

在运行时,所有普通重载解析规则都是基于对象的运行时类型执行的。这意味着,你能够直接地执行多重分配,而不用借助反射或访问者模式。

每个动态语言都具有它们自己的成员查找规则。为了支持这个功能,对象需要实现 IDynamicObject 接口。如果这个接口存在于运行时对象上,那么对象就能处理它自己的成员查找过程。在示范中,Ander 演示了如何在 C#中定义一个动态对象。

当然,这就意味着你可以在 C#中的任何地方使用 duck 类型。

查看英文原文: C# Feature Focus: Dynamically Typed Objects, Duck Typing, and Multiple Dispatch

2008-11-18 06:361530
用户头像

发布了 254 篇内容, 共 62.6 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

香港首届Web3人工智能与RWA产业投融生态对接峰会蓄势待发

TechubNews

区块链 人工智能 AI

如何使用通义灵码玩转Docker - AI助手提升开发效率

阿里巴巴云原生

Docker

TapData 与 StarRocks 完成兼容性互认证,携手共建实时数据智能生态,联合打造端到端全链路实时数仓解决方案

tapdata

实时数仓 数据集成 StarRocks 实时数据平台 tapdata和starrocks

深入研究:京东店铺所有商品API详解

tbapi

京东API 京东店铺所有商品API 京东店铺商品采集

ATRNX.AI 全智能量化 Agent 引领金融科技新浪潮——第七届全国金融大数据及 AI 战略融合发展大会在杭召开

TechubNews

区块链 人工智能 web3

Easysearch S3 备份实战

极限实验室

S3 easysearch

GitHub封锁?推荐5个国产的Git仓库替代平台

程序员晚枫

GitHub 开源

深入研究:京东商品视频 API 详解

tbapi

京东API 京东商品视频API

区块链ETF类APP的技术难点

北京木奇移动技术有限公司

区块链技术 软件外包公司 区块链ETF

深入研究:1688商品详情API详解

tbapi

1688API 1688商品数据采集 1688数据采集 1688商品详情API

【HarmonyOS 5】敏感信息本地存储详解

GeorgeGcs

鸿蒙 本地存储 敏感信息

Dify Agent 驱动轻量级 MCPserver:联动 Zapier 实现智能搜索高效数据流转

汀丶人工智能

agent MCP

百吋电视,被海信重新发明

脑极体

AI

ASP.NET 使用通义灵码 - AI 辅助开发提升效率

阿里巴巴云原生

asp.net

Arthas profiler(使用async-profiler对应用采样,生成火焰图)

刘大猫

教育 Arthas 大模型 社会科学 人文学科

区块链 ETF 类 APP 的主要功能

北京木奇移动技术有限公司

软件外包公司 区块链ETF ETF软件

通义灵码助力JavaScript开发:快速获取API与智能编码技巧

阿里云云效

JavaScript

AI与无人驾驶汽车:如何通过机器学习提升自动驾驶系统的安全性?

天津汇柏科技有限公司

人工智能 无人驾驶 AI人工智能

深入研究:京东商品评论API详解

tbapi

京东商品评论接口 京东API 京东评论API 京东商品评论采集

性价比很高的智能工单管理系统推荐:轻帆云工单管理效率翻倍,运营成本直降50%!

云智慧AIOps社区

ITSM ITSM软件 工单管理 AI智能客服

区块链ETF类APP的开发流程

北京木奇移动技术有限公司

区块链技术 软件外包公司 区块链ETF

2025黑神话悟空更新了什么内容 Mac电脑怎么玩黑神话悟空

阿拉灯神丁

mac电脑虚拟机 CrossOver Mac下载 Mac游戏下载 苹果电脑游戏推荐 黑神话悟空

【HarmonyOS 5】鸿蒙实现手写板

GeorgeGcs

鸿蒙 HarmonyOS 本地存储 敏感信息

摩尔线程精彩亮相2025中国移动云智算大会,以全栈AI赋能智算新时代

新消费日报

香港首届Web3人工智能与RWA产业投融生态对接峰会蓄势待发

TechubNews

人工智能 AI

《Operating System Concepts》阅读笔记:p629-p635

codists

操作系统

如何使用通义灵码玩转Docker - AI助手提升开发效率

阿里云云效

Docker

2025年最佳的5个找工作AI助手:全面指南

安全乐谷

AI 面试 找工作 实习 agent

北京大风来,带了什么来

AI时代的一滴水

人生修炼

通义灵码助力JavaScript开发:快速获取API与智能编码技巧

阿里巴巴云原生

js

欢迎投稿!Community Over Code Asia 2025 议题征集全面启动!

Apache IoTDB

C#特性聚焦:动态类型化对象、Duck类型和多重分配_.NET_Jonathan Allen_InfoQ精选文章