Visual Studio 2010 和 .NET Framework 4.0 专题 - 4: C# 4.0 对 COM 互操作性的语言改进

大家都知道,Microsoft Office 是基于组件对象模型 (COM) 技术开发的,Visual Studio 提供了面向 Office 编程需要的工具,即 VSTO 以及其运行库,即 VSTO Runtime。但如果您用 C# 编写这类应用程序,会出现一些麻烦,例如 C# 中由于没有可选参数,导致调用一些 COM 方法时,需要指定每一个参数值。最好的例子就是 ExcelApplication.Open() 方法,它接受超过 10 个参数,用 C# 调用此 COM 方法时,必须另外申明 10 个 ref 型的变量,并赋予初值 null。

C# 4.0  提供了一些语言特性用来支持这些操作的简单化。

命名参数和可选参数

命名参数和可选参数在 Visual Basic 中都存在,但 C# 中命名参数仅仅在属性 (Attribute) 初始化时才可用。新的 C# 语法支持这些特性,这大大简化了 COM 互操作的语法。

下面的代码演示了 C# 命名参数和可选参数的使用方法。

  1. public void Add(int a, int b, int c = 0)
  2. {
  3.     return a + b + c;
  4. }
  5. public void Test()
  6. {
  7.     int result = Add(a = 1, b = 2);
  8.     int result3 = Add(1, 2);
  9. }

请注意,可选参数和函数重载决策的本质不同。

omit ref 修饰

omit ref 修饰针对于函数参数,可用来执行在 COM 调用时省略在 COM 宿主上定义的按引用传递值的参数值。例如,在赛以前版本的 C# 中,若要调用某个函数原形的 COM 函数,则需要按照如下代码进行操作。

  1. int flags;
  2. int settings;
  3. SomeComObject.SomeMethod(ref flags, ref settings);

而新的 omit ref 则可以简化这个声明。目前具体的语法形式我们还不清楚,等到我们安装好了 Visual Studio 2010 十月 CTP 后再向大家介绍。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值