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

2007 年 8 月 24 日

在 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 { “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

2007 年 8 月 24 日 01:05307
用户头像

发布了 37 篇内容, 共 64244 次阅读, 收获喜欢 1 次。

关注

评论

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

单例模式

魏小龙

月薪60k的Java开发在阿里是什么级别?对技术能力有哪些要求?

Java成神之路

Java 阿里巴巴 程序员 面试 编程语言

入行架构师之前,这7项技能你要先了解一下

Java架构师迁哥

【第三周】代码重构

云龙

架构师训练营第三小结(9.28-10.4)

zjzj2017

有这些要素,架构才完整

北风

架构 架构师之道 架构方法

架构师训练营第 1 期第 4 周学习总结

好吃不贵

2N方定点算法

刀斧手何在

php 数据库 分布式 算法 后端

Redis-技术专题-基础介绍

李浩宇/Alex

spring-boot-route(九)整合JPA操作数据库

Java旅途

Java Spring Boot jpa

3. CocoaPods 命令解析 - CLAide

Edmond

ruby ios objective-c CocoaPods PackageManager

架构师1期-代码重构作业

ltl3884

极客大学架构师训练营

Hazelcast IMDG 带你瞬间进入内存计算的时代

张磊

分布式计算 内存管理 分布式缓存 分布式内存网格

云原生虚机应用托管-设计篇

8小时

架构师训练营第四周作业

尹斌

Redis-技术专题- 热点Key如何解决

李浩宇/Alex

架构师训练营第三周课后作业

Gosling

极客大学架构师训练营

爆赞!这份《Java核心宝典》绝对是面试复习的最佳选择

Java架构之路

Java 程序员 面试 编程语言

架构师训练营第 1 期第 4 周作业

好吃不贵

极客大学架构师训练营

【第三周】课后作业

云龙

干货 | 全面解析“数字经济”

CECBC区块链专委会

数字经济 经济 经济建设

第四周作业

极客大学架构师训练营

实用威胁建模指南(一)

亚伦碎语

敏捷 安全设计 系统安全 #威胁建模

极客时间架构 1 期:第 3 周代码重构 - 命题作业

Null

第三节课后作业

happy

架构师训练营第四周学习总结

尹斌

四面阿里成功定级P6,月薪36K,分享面经(含面试题答案)

Java成神之路

Java 阿里巴巴 程序员 算法 编程语言

发几张国庆的照片

亨利笔记

容器 k8s Harbor 镜像

架构师训练营第三周作业(9.28-10.4)

zjzj2017

架构师训练营第三周学习总结

Gosling

极客大学架构师训练营

LeetCode题解:226. 翻转二叉树,递归,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

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