网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > DotNet > C# > C#3.0之对象与集合初始化  

C#3.0之对象与集合初始化

2007-07-25  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

  

    我们知道在C#2.0中要初始化一个对象可以用构造器,或者声明公有属性,然后在new一个对象之后在对属性赋值。必须一步一步的来,在C#3.0中可以有一种很简单的方法对对象和集合进行初始化工作。 网管联盟bitsCN_com

看个例子:

网管bitscn_com

public class Point { 网管bitscn_com
int x, y;
public int X get return x; } set { x = value; } } 网管网www.bitscn.com
public int Y get return y; } set { y = value; } } 网管论坛bbs_bitsCN_com
}


var a 
= new Point { X = 0, Y = 1 }; 中国网管联盟bitsCN.com
//相当于:var a = new Point(); a.X = 0; a.Y = 1;

//集合初始化器:
List<int> num= new List<int> 0126789 }; 网管网www.bitscn.com
//相当于:ICollection<T>.Add(T),即num.Add(0),...

    我们明显的看到初始化工作又被简单化了。注意这里用到的技术仍然是编译时技术,也就是编译器会在背后替你做好多工作。而不是运行时的技术。

网管网www_bitscn_com

    从上面我们可以看出来,一个对象要想像上面的那种形式初始化,必须满足几个条件:首先必须得有公有的无参构造器,否则编译器就无法new出一个对象,更别说初始化了。其次在进行赋值的时候,这些属性必须是共有的。这点就不必解释了。

中国网管联盟bitsCN.com

    如果想看看背后编译器做了哪些工作,我们可以用ILDasm对上面的代码进行反汇编,就可以看到背后自动生成的一些东西了。

网管网www.bitscn.com


TAGs   初始   集合   对象   ...   可以   int   我们   工作   一个   new   必须      
 上一篇:C#向Excel报表中插入图片的2种方法   下一篇:C#中实现VB中的CreateObject方法
C#3.0之对象与集合初始化 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: