.NET人字拖
万丈高楼平地起,我正在努力筑地基...
随笔- 133  文章- 0  评论- 606 
博客园  社区  首页  新随笔  联系  管理  订阅 订阅

[.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在现阶段还是不可能的,作为程序员学习在学习才是正道。

关于作者:网魂小兵

文章出处:http://xdotnet.cnblogs.com

本文可以随意转载,摘抄等非商业用途。

为了尊重作者成果,在转载和摘抄的时候请留下作者名称和出处。

绿色通道:好文要顶关注我收藏该文与我联系
posted @ 2007-09-04 22:21 网魂小兵 阅读(1313) 评论(9) 编辑 收藏
883912
#1楼上善若水       在2007-09-04 23:49说:
这个是C#的新特性吧,和.net没有关系的说?
 回复 引用 查看   
#2楼iCaca       在2007-09-05 00:45说:
c# 3.0
.net 3.5

 回复 引用 查看   
#3楼long[未注册用户] 在2007-09-05 08:25说:
跟JS还真TM有点象啊 json
 回复 引用   
#4楼达达[未注册用户] 在2007-09-05 08:37说:
不错,和ActionScrtipt3很像了,不过ActionScript3没有自动化属性,呵呵
 回复 引用   
#5楼[楼主]网魂小兵       在2007-09-05 08:49说:
@上善若水

这个偶知道啦,感觉.NET很大一部分都是关于C#的了,所以我就没有另外注明了。我很早以前写过关于C#3.0的这些特性,但那只是概括一下把所有特性都搞在一起!!!

 回复 引用 查看   
#6楼[楼主]网魂小兵       在2007-09-05 08:52说:
@iCaca

其实这些东东在VISTA .NET3.0下也支持的,.NET3.5兼容VISTA .NET3.0,而3.0只不过是VISTA下的一个过度版本,而.NET3.5是随着Windows Server 2008(Lonhorg Server)出来的。C#3.0那就没什么说的了,不过LinQ的出现我觉得会对C#编程有一个很大的影响。

微软的版本很多更新快,我也不是说的很明白啦,谢谢你的提醒。

 回复 引用 查看   
#7楼[楼主]网魂小兵       在2007-09-05 08:54说:
@long

挺像的,不过JSON的对象不用new可以直接用{}替换就OK了,其他就完全一样了。

 回复 引用 查看   
#8楼[楼主]网魂小兵       在2007-09-05 08:55说:
@达达

对Flash不懂,所以对ActionScript也没有多少了解,我还是对JS比较有好感:)

 回复 引用 查看   
#9楼达达[未注册用户] 在2007-09-06 09:51说:
AS3就是下一代的JS啦,他们是一个标准的不同版本,AS3是准寻新标准。JS是网景发明的,就是现在的Mozilla,而Adobe把整个Flash Player的虚拟机开源给Mozilla的一个脚本引擎项目,呵呵,可想而知,以后的JS是什么样啦 :)
 回复 引用   
注册用户登录后才能发表评论,请 登录 或 注册,返回博客园首页。
首页博问闪存新闻园子招聘知识库
最新IT新闻:
· 初创企业能从Linux学习些什么
· Facebook单帖回复数超百万创吉尼斯世界纪录
· 春节后礼品回收iPhone成新宠燕窝被冷落
· 分析称苹果近1000亿现金储备最佳用途是派息
· 扎克伯格11件蠢事:曾同意将Facebook卖给雅虎
» 更多新闻...
最新知识库文章:
· 高级编程语言的发展历程
· 如何学习一门新的编程语言?
· 学习不同编程语言的重要性
· 为什么我喜欢富于表达性的编程语言
· 计算机专业的女生为什么要学编程
» 更多知识库文章...

China-pub 2011秋季教材巡展
China-Pub 计算机绝版图书按需印刷服务
Copyright ©2012 网魂小兵
Name:
网魂小兵
Addr:
福建厦门
MSN:
myxbing#hotmail.com
昵称:网魂小兵
园龄:5年11个月
粉丝:23
关注:0

搜索

 
 

常用链接

  • 我的随笔
  • 我的评论
  • 我的参与
  • 最新评论
  • 我的标签
  • 更多链接

我的标签

  • directx11(6)
  • direct3d 11(6)
  • 游戏编程(6)
  • c/c++(6)
  • vs2010(5)
  • wpf(4)
  • openssl(2)
  • direct3d坐标系(2)
  • vs2008(2)
  • xaml(2)
  • 更多

随笔分类(170)

  • AJAX(doc)(8)
  • ASP.NET(46)
  • C#3.0+(13)
  • C/C++(27)
  • CommunityServer(7)
  • Database(11)
  • Enterprise Library (7)
  • JavaScript(10)
  • ServerContols(7)
  • UML(1)
  • VC++/MFC(8)
  • WPF/SilverLight(6)
  • XNA Game(2)
  • 翻译(4)
  • 今天我当家(11)
  • 设计模式(2)

随笔档案(133)

  • 2012年2月 (3)
  • 2011年8月 (3)
  • 2011年7月 (7)
  • 2011年5月 (1)
  • 2011年4月 (2)
  • 2011年2月 (1)
  • 2010年1月 (1)
  • 2009年3月 (3)
  • 2009年1月 (8)
  • 2008年3月 (1)
  • 2008年2月 (3)
  • 2008年1月 (1)
  • 2007年11月 (4)
  • 2007年10月 (3)
  • 2007年9月 (9)
  • 2007年8月 (3)
  • 2007年7月 (2)
  • 2007年6月 (9)
  • 2007年5月 (9)
  • 2007年4月 (14)
  • 2007年3月 (6)
  • 2007年2月 (3)
  • 2007年1月 (15)
  • 2006年12月 (9)
  • 2006年11月 (2)
  • 2006年10月 (4)
  • 2006年9月 (7)

文章分类

  • Asp.Net(.NET)

I Like Links

  • ASP.NET
  • Codeplex
  • XNADevelopment

My Friend's Blog

  • 陆巍杰
  • 孙小雨
  • 探丫头
  • 网络安全&Linux

积分与排名

  • 积分 - 283924
  • 排名 - 248

最新评论

阅读排行榜

评论排行榜