写点什么

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

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

关注

评论

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

北京京东,看看难度

王中阳Go

Java

AI领域的agent是什么意思?

Techinsight

YashanDB数据库性能优化:常见问题及解决方案

数据库砖家

YashanDB数据库性能优化技巧及实用指南

数据库砖家

YashanDB数据库支持的全文检索功能及配置指南

数据库砖家

YashanDB数据库版本升级注意事项及操作指南

数据库砖家

YashanDB数据库环境搭建及性能测试详细教程

数据库砖家

行业热点丨手机中框设计如何体现增材思维?

Altair RapidMiner

仿真 CAE 3D打印 Inspire 增材制造

YashanDB数据库性能指标详解及应用

数据库砖家

YashanDB数据库版本升级的风险与注意事项

数据库砖家

MyEMS开源能源管理系统 + EG200 4G网关

开源能源管理系统

开源 能源管理 开源能源管理系统 EG200

Perf 的 cpu-clock 与 cpu-cycles 采样实现与对比

mazhen

Linux Performance perf kernel

从“大模型热”到“Agent潮”,“真风口”还是“伪命题”?

Techinsight

YashanDB数据库支持的多协议访问技术探究

数据库砖家

YashanDB数据库支持哪些编程语言?开发集成教程

数据库砖家

YashanDB数据库海量数据存储方案解析

数据库砖家

YashanDB数据库核心技术架构及未来发展趋势探讨

数据库砖家

ISO 50003对提供能源管理体系审核和认证的机构的要求与MyEMS开源能源管理系统

开源能源管理系统

开源 能源管理 开源能源管理系统 ISO50003

施耐德电气EMS+与MyEMS对比分析

开源能源管理系统

开源 能源管理 开源能源管理 施耐德电气EMS

微擎生态驱动的招商信息管理平台

微擎应用市场

微擎生态驱动的多端客服管理平台

微擎应用市场

YashanDB数据库性能瓶颈诊断与解决方案

数据库砖家

YashanDB数据库异步复制技术详解及配置指南

数据库砖家

YashanDB数据库支持的事务隔离级别详解

数据库砖家

YashanDB数据库版本升级及数据兼容性解决方案

数据库砖家

YashanDB数据库查询优化策略详解

数据库砖家

YashanDB数据库架构的未来发展趋势展望

数据库砖家

YashanDB数据库核心功能解析及使用教程

数据库砖家

YashanDB数据库性能监控指标及优化建议

数据库砖家

扫码点餐微擎生态驱动的智慧餐饮解决方案

微擎应用市场

AI技术在英语口语练习中的应用

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

软件外包公司 AI英语学习 AI技术应用

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