写点什么

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

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

关注

评论

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

前浪的经验:区块链软件,一定也要去中心化

WasmEdge

比特币 区块链 智能合约 以太坊 加密货币

油管博主路透 3080Ti 参数、黄教主烤箱中拿出 DGX A100 预热发布会

神经星星

人工智能 互联网巨头 gpu 互联网 英伟达

我为什么要开启InfoQ写作

Nick

需求是被挖掘还是被创造出来的?

Neco.W

产品 互联网 需求

猿灯塔-Phaser 使用介绍

猿灯塔

Flink Weekly | 每周社区动态更新

Apache Flink

大数据 flink 流计算 实时计算

全面解读信创行业 关注国产操作系统

统小信uos

操作系统

什么是工作

史方远

随想 工作

定在下午面试的那位候选人,说他不来了

Geek_6rptuk

团队管理 面试 简历优化 招聘

高仿瑞幸小程序 08 创建第一个云函数

曾伟@喵先森

小程序 微信小程序 大前端 移动

游戏夜读 | 关卡设计为什么难?

game1night

怀念小时候吗?

安静的下雪天

个人感想

ThreadLocal到底会不会内存泄漏?实战直接告诉你答案!

刘超

Java 多线程 ThreadLocal

如何快速更改qcow2镜像文件

奔跑的菜鸟

云计算

全球经济动荡下,超流币逆袭而来!

极客编

ZigBee3.0 节点入网流程分析

taox

网络协议

一文读懂阿里云通信的产品体系、技术架构与智能化应用场景实践

阿里云Edge Plus

人工智能 云通信 短信 语音 智能联络中心

物联网技术栈之网关技术

老任物联网杂谈

物联网网关

一杯茶的时间,上手 React 框架开发

图雀社区

Reac

回顾经典,Netflix的推荐系统架构

王喆

人工智能 学习 推荐系统 netflix

Android10版本引发的生产故障及安全知识归纳

大刘

android https TLS 加解密

AtomicStampedReference是怎样解决CAS的ABA问题

捉虫大师

Java

选择适合自己的 OLAP 引擎

程序员小陶

大数据 开源 OLAP

终于有一款组件可以全面超越Apache POI

葡萄城技术团队

前后端分离 服务端 GrapeCity Documents

故障的传播方式与隔离办法

Wales Kuo

谈谈控制感(3):让孩子更好地成长

史方远

心理学 控制感 教育

线程通信知识点扫盲!

Simon郎

Java 后端 多线程

原创 | 使用JUnit、AssertJ和Mockito编写单元测试和实践TDD (六)测试哪些内容:Right-BICEP

编程道与术

Java 编程 软件测试 TDD 单元测试

初探Electron,从入门到实践

葡萄城技术团队

大前端 Electron SpreadJS

由纪念日想到杨德昌

Elizen

随笔 电影

Tomcat安全配置

wong

Tomccat security

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