写点什么

C#特性聚焦:可选和命名参数、COM 互操作性

  • 2008-11-19
  • 本文字数:681 字

    阅读完需:约 2 分钟

鉴于非常多的客户要求,Anders 发了下慈悲,允许在 C#中支持可选和命名参数(Optional and Named Parameters)。就像 VB 那样,可选参数通过包含一个默认值来支持。并像 VB 中的那样,必选参数必须先于任何可选参数之前出现。

命名参数也被完全地支持了。这允许开发人员以任何他们习惯的顺序来设定参数值。这个功能对于普通以及可选参数都有效,人们只有在处理可选参数的时候才会希望看到它。

当参数用于解析表达式的时候,顺序严格地由进行调用的代码所确定,而无需遵循函数的签名顺序。虽然这种方式不被推荐,但这意味着使用了这种方式的表达式可以更安全或者不安全地用作参数。

COM 函数库具有一个糟糕的习性,就是使用 Object 作为返回值。为了解决这个问题,C# 4 将自动地把任何由 COM 返回的对象都升级为“动态”类型。正如我们在之前的文章提及的那样,这允许在对象上进行后绑定调用,犹如开发人员手动地编写了所需的反射代码。

“ref”修饰符对于 COM 调用不再需要,除非引用语义确实需要。

最后,这也意味着代码会通常如下所示:

复制代码
//C# 3
var a = (IFoo) obj.Foo(ref missing, ref missing,
ref missing, ref missing,
ref missing, 5, ref missing,
ref missing, ref missing);
var b = (IBar)a.Bar();
var c = b.Value;
//C# 4
dynamic obj = //some COM or DLR object
var c = obj.Foo(clientId := 5).Bar().Value

同时目前还有一个关于参数化属性的流言。一旦得到它更多的信息,我们将发表一篇更新新闻。

查看英文原文: C# Feature Focus: Optional and Named Parameters, COM Interoperability

2008-11-19 02:102206
用户头像

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

关注

评论

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

玩转 Easysearch 语法

极限实验室

数据库 搜索引擎 easysearch 极限科技 征文系列

腾讯特别调薪8%,年底十三薪分摊到月薪:福利升级还是另有深意?

王中阳Go

腾讯 面经

企业全历史行为数据助ToB企业决策层开启营销的上帝视角

客户在哪儿AI

ToB营销 ToB增长 ToB销售

2024中国PMO高峰论坛在京成功召开

财见

Python数据结构:字典详解(创建、访问、修改、字典方法)

我再BUG界嘎嘎乱杀

Python 编程 数据结构 后端 开发语言

阶跃星辰启动「繁星计划」开放平台;运动迁移框架 MotionClone 无需训练,一键克隆视频运动丨 RTE 开发者日报

声网

告别 CentOS,开源操作系统与时代同步更需“根”的力量

OpenAnolis小助手

操作系统 龙蜥社区 CentOS 停服

Web 开发者必备:最推荐的工具清单

Liam

程序员 前端 Web

高性能存储 SIG 月度动态:优化 xfs dax reflink 时延,独立选型并维护 mdadm 和 ledmon

OpenAnolis小助手

操作系统 高性能存储 龙蜥社区SIG

高性能网络SIG月度动态:virtio技术委员会通过flow director提案,netdim调节特性正式合入上游社区

OpenAnolis小助手

操作系统 龙蜥社区 龙蜥社区SIG

22 位委员参会,第 25 次龙蜥社区运营委员会圆满结束

OpenAnolis小助手

操作系统 龙蜥社区

说说RabbitMQ延迟队列实现原理?

王磊

Java 面试

本周五开讲!AI 时代的运维开发工具 OS Copilot 陪跑班,分享云上最佳实践案例

OpenAnolis小助手

Alibaba Cloud Linux OS Copilot 运维开发工具

怎么填充PPT底色?分享2个办公必备的PPT技巧!

彭宏豪95

职场 PPT PPT模板 办公软件 AI生成PPT

“SelectDB 实时数据仓库解决方案”入围工信部“信息技术应用创新典型解决方案”

SelectDB

数据库 大数据 数据仓库 云原生 信创

Databend 完美适配 KubeSphere 企业版 4.1.1,让云原生技术更普及

Databend

数据可视化在石油新能源行业的应用:深度探索与前沿趋势

不在线第一只蜗牛

数据挖掘 数据分析 低代码 数据可视化

破局移动影像,华为的化境是绝无止境

脑极体

AI

Cloud Kernel SIG 月度动态:发布 ANCK 3 个版本,5.10 kABI/kAPI 策略变更

OpenAnolis小助手

操作系统 龙蜥社区 龙蜥社区SIG Cloud Kernel

轻松应用 RapidMiner 内置案例模板实现数据挖掘详解(下篇)

Altair RapidMiner

人工智能 数据挖掘 算法 数据分析 altair

阿里云大牛熬夜整理的Python大数据小抄,GitHub星标125K!

我再BUG界嘎嘎乱杀

Python 大数据 编程 后端 开发语言

直播预约丨《指标体系建设实战》第四期:如何构建全面的指标管理体系

袋鼠云数栈

大数据 指标体系 指标管理 指标中台 指标建设

【YashanDB知识库】存储过程报错snapshot too old

YashanDB

yashandb 崖山数据库 崖山DB

苏州八大行业服务器托管方案分享?IDC机房选择经验

苏州服务器托管

算力 IDC 服务器托管

线上观看 3 万+!「智能可观测运维技术MeetUp」精彩回顾,探讨智能体构建新方向

OpenAnolis小助手

操作系统 龙蜥社区 龙蜥meetup 可观测技术

Python的众多包管理器

我再BUG界嘎嘎乱杀

Python 编程 后端 开发语言

“Pandabuy事件后,淘宝代购集运系统如何强化仿牌敏感词风控策略“

tbapi

淘宝代购集运系统 Pandabuy 逆向海淘系统

JDBC 最佳实践

FunTester

C#特性聚焦:可选和命名参数、COM互操作性_.NET_Jonathan Allen_InfoQ精选文章