惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

M
MIT News - Artificial intelligence
有赞技术团队
有赞技术团队
S
Schneier on Security
aimingoo的专栏
aimingoo的专栏
T
Troy Hunt's Blog
U
Unit 42
Hacker News - Newest:
Hacker News - Newest: "LLM"
V2EX - 技术
V2EX - 技术
T
The Blog of Author Tim Ferriss
V
Visual Studio Blog
H
Heimdal Security Blog
H
Hacker News: Front Page
Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
Cloudbric
Cloudbric
Google DeepMind News
Google DeepMind News
C
Cisco Blogs
The Cloudflare Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
MyScale Blog
MyScale Blog
F
Fortinet All Blogs
N
News | PayPal Newsroom
Attack and Defense Labs
Attack and Defense Labs
D
DataBreaches.Net
N
News and Events Feed by Topic
Security Archives - TechRepublic
Security Archives - TechRepublic
Forbes - Security
Forbes - Security
Simon Willison's Weblog
Simon Willison's Weblog
F
Full Disclosure
The Register - Security
The Register - Security
L
LINUX DO - 热门话题
Webroot Blog
Webroot Blog
Google Online Security Blog
Google Online Security Blog
AI
AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
I
Intezer
S
Security Affairs
阮一峰的网络日志
阮一峰的网络日志
K
Kaspersky official blog
云风的 BLOG
云风的 BLOG
博客园 - 叶小钗
T
Threatpost
Spread Privacy
Spread Privacy
小众软件
小众软件
AWS News Blog
AWS News Blog
S
Secure Thoughts
S
Security @ Cisco Blogs
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
J
Java Code Geeks

博客园 - Saar

LightSwitch 2011 实践之个人汽车仓库 —— 起步 让我们更快一点的Visual Studio的技巧们 实战 WPF Jump List 编程 实战Bing MAP REST服务的封装、调用 选好 Async 函数的返回类型 用WCF + Entity Framework 序列化时的陷阱 大家都来搭架构 —— VS 2010 Layer Diagram (层图) 基本使用 基于Entity Framework 4.1实现一个适用于单元测试的MockDbContext(下) 基于Entity Framework 4.1实现一个适用于测试的MockDbContext(上) 利用IProgress轻松搞定进度条编程 C# 5.0功能之Async一瞥 C#不是C++ 之 委托(Delegate) C#不是C++ 之 泛型(Generic) Silverlight 学习笔记——MVVM模式实现主从数据显示 Silverlight 学习笔记——用MediaElement制作在线音乐播放器 Silverlight 学习笔记——应用程序模型 Visual Studio 2010 部分新功能概览-QS, HR, GFU Silverlight学习笔记——依赖属性和路由事件 Silverlight 学习笔记——布局
Visual Studio 2010 部分新功能概览-Dynamic & Named / Optional Parameters
Saar · 2009-03-07 · via 博客园 - Saar

预计微软会2009年秋季发布Visual Studio 2010 RTM,2010到底会给我们带来什么新的功能,让我们先睹为快。

由于VS 2010尚未开发完成,这里介绍是功能并不一定会随RTM发布,而且也有可能在设计上发生变更。

一、语言(C#)

1. Dynamic

Dynamic为C#提供了类似于VB中后期绑定的功能。例如:

dynamic x = 100;
x.Foo();


从强类型的角度看这段代码,这显然是一个编译错误。如果我们不看Dynamic关键字,x就被推断为Integer类型,而Integer怎么可以调用Foo()方法?然而,我们在处理Javascript或者调用COM对象等的时候,经常会用到一个不知道什么类型去调用一个只有在运行时才知道的方法。Dynamic关键字告诉编译器,这个对象要在运行时动态绑定。运行时,CLR检查对象x是不是有一个合适的Foo方法——一个没有参数的方法能够绑定到x。

Dynmaic可以帮助大家避免一些为了强类型化而进行强制类型转化的代码。

在上例中,由于Integer类型没有Foo()方法,直到程序运行时才抛出异常。

Dynamic

2. Named / Optional Parameters

大家有没有过这样的麻烦:写一个方法,需要有2个参数,但是其都有默认值。为了方便调用就需要一个2的2次方个重载来完成。例如:

Code

引入了可选参数后,以上四个重载就可以合并成一个非常简单的形式:

Code

调用时,如果不传任何参数,那么,将直接使用两个参数的默认值;如果传入一个整形,那么,将调用Sub(int a, "str")……依次类推。这里还有一个小的技巧,你甚至可以不按正常顺序来调用可选参数,方法就是加上“形参名称 : ”。例如,可以这样调用上面定义的方法:

Code

 OptionalParameters002
非常的灵活。需要注意的是,一旦定义了一个Optional参数,那么,其后面的参数都必须是Optional的。也就是说,从左往右,一旦有了Optional参数,以后的参数就都需要提供默认值。

下篇,打算介绍部分IDE的新功能:

1. Call Hierarchy(点击查看)

2. Quick Search

3. Highlight reference

4. Generate from usage

Little knowledge is dangerous.