浅谈C#对象和集合

开发 后端
这里介绍C#对象和集合一个对象要想像上面的那种形式初始化,必须满足几个条件:首先必须得有公有的无参构造器,否则编译器就无法new出一个对象,更别说初始化了。

C#对象和集合

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

看个例子:

  1. public class Point ...{  
  2. int x, y;  
  3. public int X ...{ get ...{ return x; } set ...{ x = value; } }  
  4. public int Y ...{ get ...{ return y; } set ...{ y = value; } }  
  5. }  
  6.  
  7. var a = new Point ...{ X = 0Y = 1 };  
  8. //相当于:var a = new Point(); a.X = 0a.Y = 1;  
  9.  
  10. //集合初始化器:  
  11. List<int> numnew List<int> ...{ 0, 1, 2, 6, 7, 8, 9 };  
  12. //相当于:ICollection<T>.Add(T),即num.Add(0),... 

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

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

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

【编辑推荐】

  1. 浅析C# ArrayList
  2. C#对象初始化学习总结
  3. 使用C#正则表达式匹配相关字符串
  4. C#改写方法学习笔记
  5. 概述C#加框和消框
责任编辑:佚名 来源: 博客园
相关推荐

2009-05-08 09:46:37

微软C#集合对象

2009-08-26 15:28:52

C#对象集合初始化器

2009-09-02 15:41:21

C# HTTPWebR

2009-08-12 11:24:25

C# String对象

2009-08-31 09:37:09

C# Employee

2009-08-19 17:12:18

C# Connecti

2009-09-02 16:36:37

C#调用Excel对象

2009-08-03 15:06:43

C# Stack对象C# Queue对象

2009-07-31 17:51:27

C#对象初始化

2009-08-26 14:27:03

C# Framewor

2009-08-11 13:13:09

C#和Java比较

2009-08-10 10:04:25

C#抽象类C#接口

2009-08-11 10:12:21

2009-08-24 18:01:45

C#3.0新特性

2009-08-20 18:30:33

C# ReaderWr

2011-09-21 10:56:31

C#结构

2009-08-18 15:15:29

C#安装服务

2009-08-27 10:54:09

C# const和st

2009-08-26 14:05:19

C#值类型和引用类型

2009-09-04 17:34:11

C#CC++
点赞
收藏

51CTO技术栈公众号