免费下载案例集|20+数字化领先企业人才培养实践经验 了解详情
写点什么

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

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

关注

评论

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

华为大数据开发平台 DataFactory 行业应用典型案例

宇宙之一粟

华为云 大数据技术 8月月更

何止一个惨字形容,水滴Java面试一轮游,壮烈了,问啥啥不会,数据库血崩,我该怎么办?

钟奕礼

Java 编程 程序员 后端 java面试

云监控是什么意思?哪个软件好?

行云管家

云计算 云平台 云监控

Spring源码解析(五)Spring 加载bean 依赖注入

石臻臻的杂货铺

spring 源码 8月月更

Java:将Excel转换为XPS

Geek_249eec

Java Excel XPS

MASA Stack 第四期社区例会

MASA技术团队

.net 云原生 dapr blazor MASA

软件测试 | 测试开发 | 专项测试技术初识Hook

测吧(北京)科技有限公司

软件测试 hook

软件测试 | 测试开发 | RPC接口测试技术-Tcp 协议的接口测试

测吧(北京)科技有限公司

TCP/IP

阿里P8架构师汇总了史上101个最牛逼的Java技术点

钟奕礼

Java 编程 程序员 架构 java面试

软件测试 | 测试开发 | APK 逆向工程 - 解析 apk 基本信息和方法调用图

测吧(北京)科技有限公司

软件测试 测试 APK

华为云咨询携手商业伙伴探索咨询业态升级

宇宙之一粟

数字化转型 8月月更

企业应用现代化实用教程 | 微服务架构怎么选?Dubbo、Spring Cloud、Istio终极对决

York

微服务 云原生 Spring Cloud istio Service Mesh (ASM)

基于 LowCodeEngine 的调试能力建设与实践

阿里巴巴终端技术

前端 低代码

软件测试 | 测试开发 | MockServer 服务框架设计

测吧(北京)科技有限公司

软件测试

面试 | 百度测试开发岗位面试题目回顾

测吧(北京)科技有限公司

面试‘

佛山等保测评机构有哪些?怎么做?

行云管家

等保 等级测评 佛山

Spring源码分析(六)FactoryBean 接口解析

石臻臻的杂货铺

spring 源码 8月月更

全球首创!网易伏羲提出135种人脸表情划分标准,荣登IEEE官网

网易伏羲

人工智能 IEEE 网易伏羲

APP上架因收集个人信息问题被拒绝该怎么解决?

YonBuilder低代码开发平台

程序员 技术 App 信息安全

leetcode 409 Longest Palindrome 最长回文串(简单)

okokabcd

LeetCode 算法与数据结构

开源一夏 |为什么BigDecimal比较大小一定要用compareTo

六月的雨在InfoQ

开源 equals BigDecimal 8月月更 compareTo

华为初面+综合面试(Java技术面)附上面试题

钟奕礼

Java 编程 程序员 java面试 后端架构

软件测试 | 测试开发 | 文未有福利 | 接口自动化你不懂?听HttpRunner的作者怎么说

测吧(北京)科技有限公司

HttpRunner

MobTech 短信验证Android端 API

MobTech袤博科技

android

阿里P8大牛手写《亿级流量并发手册》GitHub下载榜飙升至第一

退休的汤姆

Java 程序员 面试 社招 秋招

单测增量代码覆盖率统计方案

转转技术团队

测试 测试覆盖率统计工具

长安链p2p-Liquid学习笔记

长安链

数字藏品系统开发:(开发NFT数字藏品源码)

开源直播系统源码

NFT 数字藏品 数字藏品系统

软件测试 | 测试开发 | 利用 pytest 玩转数据驱动测试框架

测吧(北京)科技有限公司

pytest

微服务日志监控的挑战及应对方案

穿过生命散发芬芳

日志监控 8月月更

表弟面试阿里又挂了,我强烈推荐程序员必备阿里面试的300+面试题(含答案解析)给他后,苦肝两月,成功上岸蚂蚁金服

钟奕礼

Java 编程 程序员 java面试 技术宅

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