当前位置: 首页 > 编程语言 > C# > 正文

C#3.0新特性――自动生成属性

时间:2010-07-27 cnblogs 真的骄傲

C#自诞生起就取众家之长,集万千宠爱于一身,而且还是名门望族.NET Framwork家族中的一员,可谓天生高贵。编程界的老大哥JAVA,在发展了十几年后,已经健壮和强大。借助开源社区的SSH(struts+ spring+hibernate)框架,使得j2ee拥有了无与伦比的魅力。通用性,移植性,可扩展性都得到了很好的支持。每当我们学了SSH之后就会感概,为什么.NET没有这么优秀的框架呢。于是.NET的粉丝们也开发了自己的SH(NSpring+NHibernate)。但这两个框架和.NET的编程风格总是显得格格不入,这只是单纯抄袭过来的东西。但是我们也不用太悲观,C#3.0的出现带给了我们许多新的特性,至于是什么新特性呢,我将给大家一一介绍。

第一个新特性:自动生成属性

通常,我们都要为每个类编写Get/Set方法来对外提供属性的访问和操作。如:

Code
public class UserInfo
{
  string userName;
  string password;
  public UserName
  {
    get{return userName;}
    set{username=value;}
  }
  public Password
  {
    get{return password;}
    set{return password=value;}
  }
}

我们总是很羡慕Eclipse为JAVA的属性自动生成Geter/Seter方法的功能,虽然Visual Studio也能类似的功能,但用起来还是不够方便,尤其是当一个类的属性很多的时候,编写这些Get/Set方法实在是一件很恼火的事情。而C#3.0的自动生成属性,终于让我们摆脱了这个恶梦,而且你会发现它是语言本身的特性,比JAVA的Geter/Seter方法要更简单,更简洁,更自然。微软在细节方面真是下了不少苦功啊。

好了,让我们来看看使用C#3.0的自动生成属性编写上面这个类是怎样的呢。

Code
public Class UserInfo
{
  public string UserName{get;set;}
  public string Password{get;set;}
}

我们可以发现,这实在是太轻松了。我们只需要在属性后面加入get/set两个关键字,就实现了以前要写几行代码的方法。.NET Framwork就会为我们自动生成它的私有的属性。现在使用它和使用上面这个类是一样的。

Code
UserInfo userInfo=new UserInfo();
userInfo.UserName=”test”;
userInfo.Password=”test”;

如今,我们可以向JAVA的粉丝们炫耀了。呵呵,开个玩笑的。