写点什么

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

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

关注

评论

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

实用的预设管理器和编辑器 JU-106 Editor for mac

Rose

我离职了,聊聊职场、大学、友情和爱情:人不能两次踏入同一条河流,生命只能倒着被理解,但却必须正着被经历

码哥字节

#职场思考

【重磅】JimuReport 积木报表 v2.0 版本发布

JEECG低代码

GitHub 数据可视化 免费报表 开源版本

苹果Mac电脑五款实用思维导图软件分享

Rose

TG Pro:有效保护您的Mac电脑避免过热或损坏

Rose

Zerto 10.0 Update 7 - 适用于本地、混合和多云环境的灾难恢复和数据保护

sysin

Zerto

鸿蒙仓颉语言开发实战教程:商城应用个人中心页面

幽蓝计划

Guitar Pro为什么被称为吉他编曲的绝佳软件?Guitar Pro编曲教程

阿拉灯神丁

吉他学习 吉他谱 编曲软件 Guitar Pro8 音乐创作

Pixologic ZBrush:角色建模、场景建模、特效制作

Rose

苹果电脑实用工具:小历TinyCal 精美的Mac日历软件

Rose

MAZDA EZ-60领衔 长安马自达多款新车型亮相2025重庆车展

极客天地

通义灵码2.5 | 一个更懂开发者的 AI 编程助手

六月的雨在InfoQ

MCP Server AI 编程 通义灵码2.5 编程助手

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

王二蛋和他的张大花

鸿蒙 os

DaisyDisk for mac 磁盘健康及深度清理工具

Rose

AutoCAD LT 2026(cad2026简化版)中文详细安装教程-Mac/win

Rose

基于YOLOv8的PCB缺陷检测识别项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!

申公豹

yolov8

不是拿着源码过来,就能二开,还需要注意这些

程序员郭顺发

React源码阅读(2)-fiber核心构建原理

溪抱鱼

Text Workflow for mac 文本格式转换工具

Rose

专为开发者和AI爱好者设计的工具 LM Studio for Mac您的本地 AI 工具包

Rose

哪款文件比较工具好用?试试 UltraCompare 吧,支持MacOS和Windows

Rose

VMware VeloCloud SD-WAN 6.4 - 领先的 SD-WAN 解决方案

sysin

velocloud

AI编码工具:面向现代开发者的分层指南

俞凡

人工智能

【HarmonyOS 5】桌面快捷方式功能实现详解

GeorgeGcs

鸿蒙 开发工具 HarmonyOS HarmonyOS NEXT 实践分享

Go 语言中的 Hot Path 优化:高性能优化实践指南

异常君

Go 高并发 高性能 优化

低代码不是炫技,而是回归需求的必然答案

伤感汤姆布利柏

用 10 个 AI 工具创建独立开发团队

俞凡

人工智能

2025北京智源大会闭幕|黄铁军:构建物理智能体,具身智能目标是星辰大海

智源研究院

透明LED广告屏租赁价格:探究成本

Dylan

广告 LED LED display LED显示屏 LED屏幕

AI 全栈开发实战营 - 第三章

9527

HarmonyOS运动语音开发:如何让运动开始时的语音播报更温暖

王二蛋和他的张大花

鸿蒙

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