Visual Studio 2010及C# 4.0的预览版资源链接

随着PDC2008的开幕,VisualStudio2010与.NETFramework4.0的08年10月版CTP发布。此次发布包括预先安装和配置好的VPC2007镜像及C#4.0的代码示例。C#4.0的新特性主要有动态查询、命名参数/可选参数、COM互操作简化及Covariance与Contravariance。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

随着PDC 2008的开幕,Visual Studio 2010与.NET Framework 4.0的08年10月版CTP(社区技术预览)也发布了。

总的下载页面在:
[url=https://connect.microsoft.com/VisualStudio/content/content.aspx?ContentID=9790]Visual Studio 2010 and .NET Framework 4.0 CTP[/url]
具体的下载页面在:
[url=http://www.microsoft.com/downloads/details.aspx?FamilyId=922B4655-93D0-4476-BDA4-94CF5F8D4814&displaylang=en]Microsoft Pre-release Software Visual Studio 2010 and .NET Framework 4.0 Community Technology Preview (CTP)[/url]

这是一个预先安装并配置好的[url=http://www.microsoft.com/downloads/details.aspx?FamilyID=04D26402-3199-48A3-AFA2-2DC0B40A73B6&displaylang=en]VPC2007[/url]镜像,需要使用[url=http://www.microsoft.com/downloads/details.aspx?FamilyId=28C97D22-6EB8-4A09-A7F7-F6C7A1F000B5&displaylang=en]VPC2007 SP1[/url]来运行。下载文件是分成11份的RAR自解压压缩包,共7353.3MB。这会儿我已经快下完了,用了快4小时了吧……|||

根据官网的说明,要正常运行这个镜像,安装的机器至少要有75GB的剩余硬盘空间和2GB的内存,CPU至少要是Core Duo 2GHz的。真够可怕的。我的新笔记本刚好勉强能满足内存和CPU要求,但我不太愿意拿C盘那100多G的空间中的大半来放一个VS2010的镜像……今天要不要去买块新的160G移动硬盘呢(叹气

除了VS2010的CTP外,微软还通过Code Gallery提供了C# 4.0的代码例子,位于:
[url=http://code.msdn.microsoft.com/csharpfuture]C# Future[/url]
这些例子的代码都是Ms-PL的,而文档是Creative Commons Attribution 3.0的,基本上不会有什么许可证问题。

另外,[url=http://www.codeplex.com/IronPython/]IronPython[/url]小组也提供了一个专门对应VS2010 CTP的版本,在这里:
[url=http://www.codeplex.com/IronPython/Release/ProjectReleases.aspx?ReleaseId=18448]IronPython - Release: 2.0 VS10 CTP[/url]
这个版本并不是最新的2.0 RC1,而是在2.0 Beta4左右进度的版本。注意到命名空间等一系列在2.0 Beta5中的变化不会在这个版本中出现。根据C# Future页面上的说明,IronPython 2.0 Beta5或更新的版本应该也能在这个镜像里正确运行的。

============================================================

这个CTP里的C# 4.0包含了以下几个主要新特性:

1、动态查询:
动态查询(Dynamic Lookup)与静态查询相对应。这里的“查询”是指成员的查询,包括方法、运算符、索引器、属性、域等。原本C#是一种静态类型的语言,所有的成员查询都必须由编译器在编译时检查,确认其存在后才能完成编译。动态查询则是等到程序运行的时候才进行的查询,这样编译器就不会在编译器检查某个调用点上指定的成员存在与否。
这个特性大大简化了从C#调用基于DLR实现的动态语言所要写的代码,也简化了COM互操作和反射等使用场景。本质上说,这个改进就是将DLR中的MOP(MetaObject Protocol)结合C#原本的成员访问语法而得出的成果,结果就是任何使用该MOP的对象在C#里都能用最自然的语法来调用。
有一点我不太习惯的规定是,一个表达式中任何一个值的类型是[color=blue]dynamic[/color]的时候整个表达式的类型都是dynamic……我觉得这样很奇怪。有时间再写点这方面的介绍吧。

2、命名参数/可选参数:
这种方便的语法许多其它语言都有了,在C#里见到也不奇怪。以往经常写的这种重复代码:
public int Foo( int i ) {
return Foo( i, 0 );
}

public int Foo( int i, int j ) {
return i + j;
}

终于能简化成:
public int Foo( int i, int j = 0 ) {
return i + j;
}

(泪奔
顺带一提,C#的命名参数规则适用于所有方法/构造器/索引器的参数,不必特别声明。

3、COM互操作简化
基本上就是利用DLR对COM做了些特别处理使它在C#中的使用更为顺畅。可以想像OLE Automation会比以前轻松。[url=http://www.infoq.com/news/2008/10/Type-Embedding]InfoQ上有篇相关的报导[/url]可以一读。

4、Covariance与Contravariance……这俩词中文应该怎么翻?
Eric Lippert,C#组的一个重要人物,从去年十月份开始发表了[url=http://blogs.msdn.com/ericlippert/archive/tags/Covariance+and+Contravariance/default.aspx]一系列介绍C#中的variance特性的blog帖[/url]。现在我们看到这个特性在C# 4.0中有所体现了。对此有兴趣的可以到Eric的blog去读一下,描述十分详细。现在看来,C# 4.0里的variance比Java的泛型通配符方式更受限制一些。那么复杂度是不是也相对低一些呢?要知道,Java的泛型通配符是经常被指责的一点(“过于复杂”之类)。根据资料,在CLR中实现variance非常高效,只需要一条IL指令就行,不像数组的variance那样需要做动态类型检查。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值