QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

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

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

关注

评论

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

架构师训练营 Week 02 总结

Wancho

面向对象设计

架构师训练营第二周总结

毛叫

极客大学架构师训练营

【架构课笔记 - 第二周】编程方法演进与OOP

Nelson

架构

架构师训练营第二次总结

+╮(╯▽╰)╭/>……

架构训练营第二周作业

Gavin

week2.学习总结

个人练习生niki👍

架构师训练营-第二周总结

坂田吴奇隆

第二周作业

【架构师训练营 - week2 -2】总结

早睡早起

week2.课后作业

个人练习生niki👍

依赖倒置原则

极客时间架构课 Week02- 作业二:学习总结

yulyulcl

架构师训练营第二周心得

努力努力再努力m

极客大学架构师训练营

第二周学习总结

iHai

极客大学架构师训练营

架构师训练营第二周作业

努力努力再努力m

极客大学架构师训练营

week02 学习总结

Just顾

架构师训练营第二周总结

allen

《架构训练营》week2 作业

任鑫

架构

【架构师训练营】第二周作业

魔曦

极客大学架构师训练营

「编程模型」C++代码组织

顿晓

c++ 命名空间 namespace 代码组织 编程模型

架构师训练营 -Week 02 学习总结

华乐彬

第二周--设计模式

Just顾

架构学习(二)作业

漫步跑小鸡

万物互联=区块链+物联网

CECBC

AI 物联网 区块链技术 智能高效

第二周作业(Cache接口隔离优化)

吴建中

极客大学架构师训练营

架构师训练营 -week2- 总结

Geek_5a6ca3

架构师训练营第二周总结

陌生人

架构师训练营第二章作业

JUN

架构训练营第二周总结

Gavin

架构师训练营第二课作业

曾祥斌

学习总结 - W2

Kun

极客大学架构师训练营

Week2 课后作业

Geek_165f3d

依赖倒置

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