BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

C#中提供的VB不支持的新特性

| 作者 Jonathan Allen 关注 593 他的粉丝 ,译者 陈黎夫 关注 0 他的粉丝 发布于 2007年8月25日. 估计阅读时间: 2 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

在Beta 2中,.NET中的两种旗舰语言——C#和Visual Basic各自的功能集合都已经确定。以前我们曾经介绍过只在VB中出现的特性,例如可变匿名类型XML常量等。而今天本文则要介绍一些只在C#中出现的特性。

第一个特性是用于创建数据类的一个语法上的便捷之处。借助于自动属性(Automatic Properties)语法,C#开发者无需书写任何重复的代码即可容易地创建属性。

public int X { get; private set; }

上面这句代码创建了一个名为X的属性,该属性的getter是公有的,setter是私有的。在使用上述语法时,编译器将自动生成一个私有字段并与上述getter和setter关联起来。

虽然这样的自动属性语法看上去有些类似于公有字段,不过它却有着一些值得称道的优势。首先,很多内建的类型(比如列表和数据网格)只能绑定到属性上。从长远角度考虑,使用属性也能够让开发者在需要的时候为其添加更加复杂的逻辑,而同时却并不需要改变类型的公共接口。

另一个C#中的特性就是集合初始化器。

var mystrings = new List<string> { "Alice", "Bob", "Charlie" };.

借助于类似数组初始化器的语法,上述代码将自动调用该集合的Add方法将达括号中的每一个条目添加到集合中。当然,这个特性并不能够应用于任何对象上,可使用该特性的对象应该提供一个Add方法,且该Add方法接受一个参数。

上面的这些示例程序均来自于Jomo Fisher的文章The Least You Need to Know about C# 3.0

需要注意的是,关于闭包和lambada表达式等令人激动的特性,Visual Basic只能够支持单行的匿名方法。而C#则更为强大——借助于新的委托语法,C#将能够支持多行的匿名方法。

查看英文原文: New C# Features Not Found in VB

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT