C#对象初始化学习总结

开发 后端
这里介绍C#对象初始化,我们可以采用类似于数组初始化的方式来初始化类的对象,方法就是直接在创建类对象的表达式后面跟上类成员的初始化代码。

C#3.0中加入的对象构造者特性,使得C#对象初始化工作变得格外简单,我们可以采用类似于数组初始化的方式来初始化类的对象,方法就是直接在创建类对象的表达式后面跟上类成员的初始化代码。

以前我们在声明数组时,可以同时对其进行初始化,这样就省去了很多麻烦,但是在创建类的对象时,这招可就不灵了,我们要么调用该类的构造函数完成C#对象初始化,要么就手工进行初始化。这两种方法都不太方便,使用构造函数来对对象进行初始化时,我们为了某种灵活性,可能需要编写构造函数的多个重载版本,实在是麻烦。

具体示例如下:

  1. classPoint  
  2. {  
  3. publicintX{get;set;}  
  4. publicintY{get;set;}  
  5.  
  6. publicoverridestringToString()  
  7. {  
  8. return"("+X.ToString()+","+Y.ToString()+")";  
  9. }  
  10. }  
  11.  
  12. classRectangle  
  13. {  
  14. publicPointP1{get;set;}  
  15. publicPointP2{get;set;}  
  16.  
  17. publicRectangle()  
  18. {  
  19. P1=newPoint();  
  20. P2=newPoint();  
  21. }  
  22.  
  23. publicoverridestringToString()  
  24. {  
  25. return"P1:"+P1+",P2:"+P2;  
  26. }  
  27. }  
  28.  
  29. classObjectBuilder:AppRunner.AbstractApplication  
  30. {  
  31. publicoverridevoidRun()  
  32. {  
  33. PointthePoint=newPoint(){X=1,Y=2};  
  34. Console.WriteLine("Point(X,Y)={0}",thePoint);  
  35.  
  36. RectangletheRectangle=newRectangle(){  
  37. P1={X=1,Y=1},P2={X=100,Y=200}  
  38. };  
  39. Console.WriteLine(theRectangle);  
  40. }  

我们在定义Point类的X和Y属性时,只须写上该属性的get和set访问器声明,C#编译器会自动为我们生成默认的get和set操作代码,当我们需要定义简单属性时,这个特性非常有用。

我们以new Point() { X = 1, Y = 2 }语句,轻松的完成了对Point类的初始化工作。在创建类的对象时,我们可以按照需要去初始化类的对象,只要在类的创建表达式后跟上要初始化属性的列表即可,且可以只对需要初始化的属性赋初值,而无需把所有属性的初始值都写上去。

在theRectangle对象的初始化表达式中,我们首先对P1属性进行初始化,然而P1属性也是一个自定义的类型,所以P1属性的初始化是另一个类型(Point)的初始化表达式,我们可以这样的方式来对更加复杂的类型进行初始化。以上介绍C#对象初始化。

【编辑推荐】

  1. 介绍Mono C#编译器
  2. C#运算符重载学习总结
  3. 概述C#语言的结构体
  4. C#遗传算法学习笔记
  5. 讨论C#分部方法
责任编辑:佚名 来源: 博客园
相关推荐

2009-07-31 17:51:27

C#对象初始化

2009-08-27 10:31:39

C#对象初始化器

2009-08-26 15:28:52

C#对象集合初始化器

2009-09-18 11:15:52

C#数组初始化

2009-08-24 18:01:45

C#3.0新特性

2009-09-02 16:52:55

C#数组初始化

2009-08-31 10:30:29

C#变量初始化

2009-09-17 16:06:22

C#数组初始化

2009-08-28 11:24:48

C#一维数组初始化

2009-09-17 16:17:41

C#参差数组初始化

2009-09-17 15:39:56

C#数组初始化

2011-06-17 15:29:44

C#对象初始化器集合初始化器

2011-08-15 17:52:21

iPhone应用对象NSString

2009-08-28 11:09:35

C#数组初始化

2009-08-31 09:47:22

C#静态变量初始化

2009-08-13 18:21:52

C#学习笔记

2009-09-18 11:33:37

C#二维数组初始化

2009-08-31 10:38:34

C#变量初始化

2009-08-26 18:28:44

C#数组

2011-03-17 09:58:43

Java虚拟机JVM
点赞
收藏

51CTO技术栈公众号