写点什么

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:102467
用户头像

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

关注

评论

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

云教室如何部署?云教室使用教程

青椒云云电脑

云教室 云教室厂商

Kafka 在分布式系统中的 7 大应用场景

越长大越悲伤

Java kafka

企业如何安全跨国传输30T文件数据

镭速

跨国数据传输 跨境数据传输

一招教会跨国企业如何解决跨境数据传输的丢包和延迟问题

镭速

跨境数据传输

推送内容有误怎么办?MobPush撤回/取消推送为您排忧解难

MobTech袤博科技

智能推送

博睿数据亮相GOPS全球运维大会上海站!

博睿数据

国内有哪些做的比较好的云教室厂商?

青椒云云电脑

云教室 云教室厂商 云教室解决方案

腾讯Ckafka队列使用测评

查拉图斯特拉说

kafka 消息中间件

产研团队必看!3款在线白板工具助你轻松改善工作!

彭宏豪95

产品经理 科技 产品研发 在线白板 效率软件

为什么要学音视频?

X2Rtc

开源 音视频 RTC 就业

深度解读MediaBox SDKs如何实现技术架构升级

阿里云CloudImagine

云计算 视频云

第13期 | GPTSecurity周报

云起无垠

数智化推送助力用户精准分层,MobPush是如何实现用户价值变现的

MobTech袤博科技

智能推送

免费活动-11月4日敏捷武林上海站 | Scrum.org CEO 亲临现场

顿顿顿

Scrum 敏捷开发 敏捷项目管理 敏捷活动 scrum活动

SQLSmith: Databend 如何利用随机化测试检测 Bug

Databend

如何选择向量数据库|Weaviate Cloud v.s. Zilliz Cloud

Zilliz

非结构化数据 Zilliz 向量数据库 zillizcloud

跨语言高性能 RPC 框架 Focus 架构解析

dinstone

RPC 高性能 跨语言 focus

应用容器化转型系列-容器部署的常见形态

品高云计算

PostgreSQL基于Patroni方案的高可用启动流程分析

谐云

为什么C4D能成为电商设计的王者?

Finovy Cloud

C4D 电商设计

APP移动出海必备神器,MobPush提供海外消息智能推送一站式解决方案

MobTech袤博科技

智能推送

Kubernetes跨StorageClass迁移,切换Rainbond默认SC

北京好雨科技有限公司

云原生 #Kubernetes# 企业号10月PK榜

性能卓越 全栈自主 HashData与华为金融数仓一体机联合方案全面解读

酷克数据HashData

LLM 大语言模型应用的分段策略

Tiger Wang

LLM 大语言模型 langchain

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