在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

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

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

关注

评论

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

哔哩哔哩B站视频下载器推荐(简单又好用)

资源君

工具 分享 哔哩哔哩 b站视频下载 教程分享

最壕逆天改命:18名Java程序员凭阿里P8笔记,同时斩获一线大厂offer

Java架构师迁哥

Unity ML-agents 参数设置解明

行者AI

来自网络资源资产管理的灵魂拷问

鲸品堂

网络 资源 运营商

秒懂 Java 的三种代理模式

东京奥运会与网络安全背后的速度博弈!

郑州埃文科技

架构训练营模块三作业

晨晨

架构训练营

手把手教你实现Android编译期注解

vivo互联网技术

android 注解 sdk

2021,你还在写“赤裸裸”的API吗?

Lazada首届技术开放日开麦在即 共享技术创新最佳实践

Abp太重了?轻量化Abp框架

Patronum

学习 程序员 架构 框架 Abp

Cypress 自动化测试

admin

自动化测试 Cypress 测试 单元测试 UI测试

以1敌10不是梦,Spring Boot企业级真实应用案例

博文视点Broadview

如何基于磁盘 KV 实现 Bitmap

Kvrocks

redis BitMap storage KV存储引擎

还在用Jenkins?试试Gitlab的CI/CD功能吧,贼带劲!

模块三作业

NewBranSTONE

架构实战营

看完这篇文章,你也可以手写MyBatis部分源码(JDBC)

聊一聊在阿里做了 8 年研发后,我对打造大型工程研发团队的再思考

尔达Erda

开源 云原生 研发管理 PaaS 研发

基于 Golang 构建高可扩展的云原生 PaaS(附 PPT 下载)

尔达Erda

开源 云原生 数字化转型 PaaS 数字化

带你认识MindSpore量子机器学习库MindQuantum

华为云开发者联盟

mindspore 量子机器 MindQuantum 量子机器学习库

不收藏你就后悔吧!费了三天才从GitHub上扒下的阿里Java优化笔记

保洁阿姨分享:腾讯架构师JDK源码笔记,13万字,带你飙向实战

Java虚拟机之CMS垃圾收集器

科技监管能源运作?智慧能源从光热发电技术开始描述

一只数据鲸鱼

数据可视化 智慧能源 光热发电

文档内容结构化在百度文库的技术探索

百度Geek说

百度 大前端

财务或类财务系统数值精度设计

路边水果摊

数字 财务 精度 数值

EMQ X Cloud 正式支持 Microsoft Azure 平台,助力企业出海业务

EMQ映云科技

azure 云端 云上数据 emq

【云洲智造】直播间下午4:30准时开播!

工业互联网

小透明学弟的华为上岸之路

程序员鱼皮

Java c++ Python 大前端 后端

保安小王分享:四面字节跳动,终拿Offer,只有努力,方能成功

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