设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 189|回复: 3
打印 上一主题 下一主题

了解C#特性:对象集合初始化器

[复制链接]
跳转到指定楼层
1#
发表于 2009-3-16 20:46:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在写一些实体类的时候,我们往往在写构造方法的时候思考很长时间,除了一个无参构造器外还在想需要写几个构造器呢?哪些参数是需要初始化的。现在你再也不需要为这事烦恼了。C# 3.0为你提供了对象集合初始化器:
///
///图书类
///
publicclassBook
{
  ///
  ///图书名称
  ///
  publicstringTitle{get;set;}
  ///
  ///单价
  ///
  publicfloatPrice{get;set;}
  ///
  ///作者
  ///
  publicstringAuthor{get;set;}
  ///
  ///ISBN号
  ///
  publicstringISBN{get;set;}
}
//对象初始化器
Bookbook=newBook{Title="InsideCOM",ISBN="123-456-789"};

  现在你想初始化几个就初始化几个,不需要出现这种情况:
public Book():this("")
{
}
public Book(string title):this(title,0)
{
}
public Book(string title, float price):this(title,price,"")
{
}
public Book(string title, float price, string isbn)
{
    this.Title = title;
    this.Price = price;
    this.ISBN = isbn;
}
  这一串的构造方法都是为了应付不同的初始化情况。好了,来看看对象初始化器编译器在后面为我们做了些什么呢?使用Reflector反编译程序集:
Book<>g__initLocal0=newBook();
<>g__initLocal0.Title="InsideCOM";
<>g__initLocal0.ISBN="123-456-789";
Bookbook=<>g__initLocal0;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 11:26 , Processed in 0.062386 second(s), 9 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表