Visual Studio 2010的Beta版发布已经过了数月有余,无论是C#,VB.NET还是F#的表现都令人期待(有关Visual Studio 2010 Beta版中的新特性总览,可参考之前发布的这篇文章)。选择一种开发语言是程序员的个人选择,就像挑选一种冰激凌口味——有许多不错的选择,但你最喜欢的口味则是一个个人偏好的问题。

目前成都创新互联公司已为上千余家的企业提供了网站建设、域名、虚拟空间、网站改版维护、企业网站设计、昆明网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
在Visual Studio 2010中,我们对两种最流行的语言:Visual Basic和C#做了一些加强,提供给程序员——无论他们偏好哪种语言——所有的工具,帮助他们去完成一个完美的软件。
Visual Studio 2010中的Visual Basic
Visual Basic团队致力于增强语言的效率,从而让开发者在更少的代码行中获得更多的功能。关于Visual Basic,最常见的用户需求是当将代码语句拆分为多行时,去除下划线(“_”)。Visual Basic 10 引入了隐式的行延续方式,使得在大多数情况下,不需要使用下划线。
- Function Filter(
 - ByVal customers As List(Of Customer),
 - ByVal orderCount As Integer
 - )
 - Dimquery =
 - FromcIncustomers
 - Where c.Orders.Count >
 - orderCount
 - Selectc
 
另一个提高效率的功能是自动实现(auto-implemented)属性。应用自动实现属性,原有的属性模板代码会被一行简单的声明代码替代。以前,属性声明一般是这样:
- Private _FavoriteFlavor As String = "Butter Pecan"
 - Property FavoriteFlavor() As String
 - Get
 - Return _FavoriteFlavor
 - End Get
 - Set(ByVal value As String)
 - _FavoriteFlavor = value
 - End Set
 - End Property
 - Private _FlavorList As New List(Of Flavor)
 - Property FlavorList() As List(Of Flavor)
 - Get
 - Return _FlavorList
 - End Get
 - Set(ByVal value As String)
 - _FlavorList = value
 - End Set
 - End Property
 
现在属性声明要简单的多:
- Property FavoriteFlavor As String = "Butter Pecan"
 - Property FlavorList As New List(Of Flavor)
 
集合初始化以及数组标值同样很简单。现在集合可以在声明时初始化,并由编译器判断数组标值类型。
- Dim toppings = New List(Of String) From
 - {
 - "sprinkles",
 - "chocolate chips",
 - "strawberries"
 - }
 - Dim cones = {"sugar cone", "waffle cone"} 'the type String() is inferred
 
Visual Basic 10.0对Lambda表达式有更好的支持。Lambda表达式可以包含不返回值的表达式,比如下文中的Sub关键字:
- Array.ForEach(toppings, Sub(n) Console.WriteLine(n))
 
有时你需要在Lambda表达式中做更复杂的工作,Visual Basic 10.0支持多行的Lambda表达式。和一般的表达式一样,编译器会推断出参数和返回值的类型:
- Dim doubleDown = Function(n As String)
 - If n.StartsWith("s") Then
 - Return "extra " & n
 - Else
 - Return n
 - End If
 - End Function
 
在Visual Basic 10.0中,与Python或者Ruby这些动态语言的互操作也变得很简单。例如,下面的代码片段调用了Python库“math.py”中的一个方法:
- Dim mathLib As Object = python.UseFile("math.py")
 - Dim firstNumber = 44.2
 - Dim secondNumber = 9.5
 - mathLib.PowerOf(firstNumber, secondNumber)
 
Visual Studio 2010中的C#
C#4.0主要的改进在于动态编程范式的共用性以及Office的可编程性改进。动态查询是C#4.0的新功能(有关C# 4.0动态类型的使用,可参考之前发布的这篇文章),这个功能使你可以以同样的方式使用并操作IronPython、IronRuby、JScript、HTML DOM或者标准.NET库中的对象。指定和可选的参数、COM客户端支持等语言方面的增强,则使得面向Office API的C#开发者能够享受Visual Basic开发者同样的美好体验。
在你的代码中添加dynamic这一新的关键词,能够使对象类型在运行时动态获得而不是在编译时制定。这样能够使动态语言以一种更自然的方式向C#暴露它们的对象。
- dynamic dynamicObject = GetDynamicObjectFromRuby();
 - dynamicObject.Foo(7);
 - dynamicObject.Property = "Property value";
 - dynamicObject[0] = "Indexed value";
 
对于Visual Basic和C++的程序员来说,可选参数是很熟悉的,现在,C#程序员也可以使用这一特性。带有默认值的可选参数在方法签名中声明,如下所示:
- private void CreateNewStudent(string name, int currentCredits = 0, int year = 1)
 
上述的方法可以用以下任意一种方式调用:
- CreateNewStudent("Chloe");
 - CreateNewStudent("Zoe", 16);
 - CreateNewStudent("Joey", 40, 2);
 
忽略currentCredits参数,但指定year参数,新的指定功能(高亮处)能够实现这一需求。下述调用同样可行:
- CreateNewStudent("Jill", year: 2);
 - CreateNewStudent(name: "Bill", currentCredits: 30, year: 2);
 - CreateNewStudent("Will", currentCredits: 4);
 
指定参数同样是对已有方法书写自阐述调用的好方式,即使它们并没有使用可选参数。
                分享标题:VisualStudio2010中的语言增强一览
                
                本文来源:http://www.csdahua.cn/qtweb/news27/224027.html
            
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网