写点什么

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

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

关注

评论

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

架构实战营模块二作业

随风King

「架构实战营」

第 2 周作业

波波

「架构实战营」

ECMAScript6(ES6)基础语法,linux基础及应用教程第二版

Java 程序员 后端

Elasticsearch聚合学习之五:排序结果不准的问题分析

Java 程序员 后端

Git,GitHub与GitLab的区别,java框架开发面试题

Java 程序员 后端

CentOS部署Harbor镜像仓库,java进阶训练营百度网盘

Java 程序员 后端

爽!字节大佬DDD(领域驱动设计)巅峰之作,拆解业务代码真好用

编程 程序员 字节

Elasticsearch聚合学习之二:区间聚合,java中高级面试题大全

Java 程序员 后端

client-go实战之一:准备工作,干货分享

Java 程序员 后端

CPU战争40年,终于把Intel打趴下了,字节跳动两轮面试让等hr

Java 程序员 后端

elasticsearch实战三部曲之二:文档操作,java基础填空题

Java 程序员 后端

Github神作!2021Java秋招高级面试指南,吃透至少阿里P6

Java 程序员 后端

Hadoop分布式高可用HA集群搭建笔记(含Hive之构建)

Java 程序员 后端

Dijkstra求最短路算法 ( 超级超级详细的 ) 不断更新中

Java 程序员 后端

DL4J实战之五:矩阵操作基本功,微服务架构技术栈

Java 程序员 后端

Docker系列(3)--容器连接和Dockerfile,kafka的原理

Java 程序员 后端

Elasticsearch查询速度为什么这么快?看啥?问你呢

Java 程序员 后端

git(8)Git 与其他系统,高性能mysql第四版pdf百度云

Java 程序员 后端

CAS都不了解,你还怎么看J-U-C,下载量瞬秒百万

Java 程序员 后端

CDH+Kylin三部曲之二:部署和设置,java项目百度网盘

Java 程序员 后端

Docker 从入门到实践系列三 - Docker 常用命令

Java 程序员 后端

鸿蒙生态的2021:像犀牛在丛林飞

脑极体

Dubbo面试题,mybatis架构图

Java 程序员 后端

Flink1,java从入门到精通第四版pdf下载

Java 程序员 后端

git(9)Git 内部原理,nginx模块工作原理

Java 程序员 后端

github搜索技巧小结,深入理解JVM

Java 程序员 后端

docker-compose下的java应用启动顺序两部曲之二:实战

Java 程序员 后端

flex 布局详解,我是如何收割多家大厂offer的

Java 程序员 后端

Flink on Yarn三部曲之一:准备工作,java开发校招面试题

Java 程序员 后端

Github已星标180K又一神作,阿里巴巴内部并发编程笔记

Java 程序员 后端

Google 面试六轮游,结果还是没过!Google面试真题分享

Java 程序员 后端

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