首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 技术专题 | 电子书下载 | 教学视频 | 网页设计 | 平面设计 | 搜索 | 博客 | 论坛
中国IT实验室Dotnet频道
中国IT教育
首页 ASP.NET  C#  XML/WebService ADO.NET VC.NET VB.NET .NET 资讯动态 专题 RSS订阅 讨论 下载
您现在的位置: 中国IT实验室 >> Dotnet >> C# >> 文章正文

关于C#3.0 新特性之对象构造者

文章来源ChinaItLab 作者佚名 更新时间2007-11-5 保存本文保存本文 推荐给好友推荐给好友 收藏本页收藏本页

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

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

  具体示例如下:

  以下是引用片段:

以下是引用片段:
   class Point 
   { 
   public int X { get; set; } 
   public int Y { get; set; } 
   
   public override string ToString() 
   { 
   return "(" + X.ToString() + ", " + Y.ToString() + ")"; 
   } 
   } 
   
   class Rectangle 
   { 
   public Point P1 { get; set; } 
   public Point P2 { get; set; } 
   
   public Rectangle() 
   { 
   P1 = new Point(); 
   P2 = new Point(); 
   } 
   
   public override string ToString() 
   { 
   return "P1: " + P1 + ", P2: " + P2; 
   } 
   } 
   
   class ObjectBuilder : AppRunner.AbstractApplication 
   { 
   public override void Run() 
   { 
   Point thePoint = new Point() { X = 1, Y = 2 }; 
   Console.WriteLine("Point(X, Y) = {0}", thePoint); 
   
   Rectangle theRectangle = new Rectangle() { 
   P1 = { X = 1, Y = 1 }, P2 = { X = 100, Y = 200 } 
   }; 
   Console.WriteLine(theRectangle); 
   } 
   }

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

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

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

【责编:John】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题
 ·展现C#世界 C#程序设计专题
 ·Java入门 Tomcat的配置技巧精华专题
 ·Oracle RMAN物理备份技术详解
 今日更新
 社区讨论
 博客论点
 频道精选
 Dotnet频道相关导航