CNET中国旗舰网站

ZDNet China | CNET科技资讯网 | 政府采购 | 行业网站联盟





 
标题: [分享] .NET 3.x新特性之自动属性及集合初始化
低头赏月
白金会员
Rank: 7Rank: 7Rank: 7



UID 252905
精华 1
积分 3859
帖子 267
威望 1840
ZD币 448 元
阅读权限 150
注册 2007-10-4
状态 离线
  楼主
发表于 2007-10-16 23:50  资料  个人空间  短消息  加为好友 
开发者在线

.NET 3.x新特性之自动属性及集合初始化

公司弄了个VS2008 beta 2中文版,虽然很大一部分是为了JS的智能提示外,也应该好好的温习一下.NET的一些新特性,由于以前写过一些文章,但是都没有系统的学过,都只是尝一下新鲜感。不知道从那开始,所以就来看看自动化属性,以及对象初始化和集合初始化的一些新特性。 1、自动属性
在做一个程序是我们离不开属性,特别是实体类。我们用指头一个一个的敲着get和set及局部的变量(Fields),现在可好不用在重复敲那些东东了我们只要用到get和set,就和我们的接口声明差不多了,是不是很happy。
OK!看个例子先,在.NET 2.0下我们声明一个实体类要有如下做法,这个应该没什么意见吧!
1 public class Person {
2
3  private string firstName;
4  private string lastName;
5  private int age;
6
7  public string FirstName {
8
9 get {
10 return this.firstName;
11  }
12  set {
13 this.firstName = value;
14  }
15 }
16
17 public string LastName {
18
19  get {
20 return this.lastName;
21  }
22  set {
23 this.lastName = value;
24  }
25 }
26
27 public int Age {
28
29  get {
30 return this.age;
31  }
32  set {
33 this.age = value;
34  }
35 }
36 }
在.NET 3.x中我们可以省了很多东东,代码也变得简单很多,代码如下:
1 public class Person {
2
3  public string FirstName {
4 get; set;
5  }
6
7  public string LastName {
8 get; set;
9  }
10
11  public int Age {
12 get; set;
13  }
14 }
2、对象的初始化
我们省了很多的代码,手指也少动了,没办法人总是越来越懒的嘛!下面我们来看看对象的初始化也是简单了不少,看代码就知道了,代码如下:第一个代码是.NET2.0中的初始化方式,而第二个是.NET 3.x的初始化方式,当然.NET2.0的方式也适合3.x的版本。
1 //.NET 2.0:
2 Person person = new Person();
3 person.FirstName = "小兵";
4 person.LastName = "网魂";
5 person.Age = 23;
6 //.NET 3.x:
7 Person person = new Person { FirstName = "小兵", LastName = "网魂", Age = 23};
3、集合的初始化
其实我们写程序也是在封装来为我们节省更多的东东,复用更多的东东。微软为我们做的也是越来越多,这是这篇文章的最后一个主题就是集合的初始化,我么一起来对照一下。
1 //.NET 2.0;
2 List<Person> people = new List<Person>();
3
4 people.Add( new Person { FirstName = "小兵", LastName = "网魂", Age = 23 } );
5 people.Add( new Person { FirstName = "QQing", LastName = "Lai", Age = 22 } );
6 people.Add( new Person { FirstName = "Xbing", LastName = "My", Age = 20 } );
7
8 //.NET 3.x;
9 List<Person> people = new List<Person> {
10  new Person { FirstName = "小兵", LastName = "网魂", Age = 23 },
11  new Person { FirstName = "QQing", LastName = "Lai", Age = 22 },
12  new Person { FirstName = "Xbing", LastName = "My", Age = 20 }
13 };//记得这边是要有";"的,不然就会出错的。
OK!以上就是我们所温习的一个简单的特性,利用它们我们可以很简单的来书写实体类了,虽然在程序中完全支持.NET 3.x在现阶段还是不可能的,作为程序员学习在学习才是正道。




顶部
热点频道推荐: C/S开发| 数据库| WEB开发| 嵌入式| 项目管理|
 


操作系统 数据库 中间件 应用软件 管理软件 Web应用 AJAX Linux Web2.0 RIA 开源 SOA OSS SEO Vista SharePoint Windows Server Windows 2003 Windows 2008 IIS 动态语言 Windows IE7 Oracle Oracle11g office SQLServer Firefox Solaris Ubuntut 微软Google 资讯 博客 技术看板 英雄 图片 QQ 腾讯QQ 珊瑚虫QQ 金山上市 站点图 AJAX BI BPM CRM DNS Android SQL Server 2008 EAI Enterprise 2.0 ETL ERP Flash GPL3 Java j2me JavaEE LAMP mashups NTFS ODBC ODF OOP Outsourcing RIA RSS SOA UML Web2.0 Workflow XAML XML ZFS 备份 并发控制 并行计算 动态语言 多核计算 虚拟技术 CRM 数据仓库 虚拟化 Apollo Apache BizTalk DB2 Eclipse Excel Expression Flex3 Fedora7 Forefront FreeBSD Hibernate IE 7 IIS JavaFX JBoss Linspire live Maxthon Mobile 6.0 Mozilla MySQL office OneCare OpenOffice Solaris Oracle Oracle 11g SQL Server Opera Outlook Photoshop PostgreSQL PowerBuilder PowerShell Rational RHEL ROR Salesforce Server Core Solaris SugarCRM TFS Tomcat Ubuntut Vista VMWare VPC VSTS WCF WebLogic WPF Xandros Xen KDE GNOME 火狐浏览器 Gmail 邮箱 Exchange server AJAX BI BPM EAI ETL ERP CRM DNS Flash Java JavaEE j2me LAMP NTFS ODBC ODF OOP Outsourcing RIA RSS SOA SEO Web2.0 mash up Workflow XAML XML GPL 3协议 ZFS 备份 并行计算 多核 数据仓库 搜索 并发控制 并行计算 动态语言 虚拟化 虚拟技术 Enterprise Web2.0 软件技术资讯 操作系统 Windows Server 2008 Windows Server 2008专题 系统安全 IIS 虚拟机 Windows Linux 嵌入式操作系统 Vista专区 数据库/数据仓库 MySQL & PostgreSQL & Sybase Oracle 10g / 9i / 11g SQL SERVER DB2 中间件/SOA QQ2009下载 QQ QQ群 QQ炫铃 QQ视频 QQ好友 木马病毒 QQ2007 江民 瑞星 金山毒霸 协作办公 ODF/OOXML SharePoint office web应用 浏览器 SaaS/S+S Microsoft技术 操作系统软件数据库软件中间件软件

软件频道2008年3月精华 软件频道2008年2月精华 软件频道2008年1月精华 软件频道12月精华 软件频道11月精华 软件频道10月精华 软件频道9月精华 软件频道8月精华 软件频道7月精华 软件频道6月精华 软件频道5月精华 软件频道4月精华 软件频道3月精华 软件频道2月精华 软件频道1月精华


当前时区 GMT+8, 现在时间是 2008-9-7 06:19

  Powered by Discuz! 5.5.0 © 2001-2007 Comsenz Inc.
Processed in 3.575990 second(s), 7 queries

清除 Cookies - 联系我们 - ZDNetChina中文社区 - 无图版