C# 3.0特性-- 对象初始化器
来源:互联网 发布:源码交易zhideyao 编辑:程序博客网 时间:2024/06/06 04:55
C# 3.0特性-- 对象初始化器
有一个简单的定义类,
class Book{ public string SN { get; set; } public string Name { get; set; } public double Price { get; set; }}
有三个属性,并且用自动属性语法来定义。如果需要实例化并初始化这个类的一个对象实例,就必须执行以下的语句:
Book book1 = new Book();book1.SN = "6900000000";book1.Name = "学C#";book1.Price = 69.50;
如果在类定义中添加带参数构造函数如下:
public Book(string _sn, string _name, double _price) { this.SN = _sn; this.Name = _name; this.Price = _price; }
那么把实例化和初始化合并起来,代码如下:
Book book1 = new Book("6900000000", "学C#", 69.50);
Book book1 = new Book();// 没有无参数的构造函数,会报错
提示错误
此时向类定义中添加无参构造函数。
进入对象初始化器,这是无需在类中添加额外的代码(如构造函数)就可以实例化和初始化代码的方法。实例化对象时,要为每个初始化的、可公开访问的属性或字段使用名称-值对,来提供其值。其语法如下:
Book book1 = new Book { SN = "6900000000", Name = "学C#", Price = 69.50};
使用对象初始化器,不能明确调用类的构造函数,而是自动调用默认的无参构造函数。这是对象初始化器在设置参数之前调用的,以便在需要时为默认构造函数中的参数提供默认值。如果提供了带参数的构造函数,那么在类中添加无参数的构造函数。
在Book类中添加一个属性(Type)Type,还另外定义一个 Type类,其属性包括 (int)Id、(string) Name,这里使用对象初始化器的嵌套使用,代码如下
Book book1 = new Book{ SN = "6900000000", Name = "学C#", Price = 69.50, Type = new Type { Id = "001", Name="计算机书籍"}};注意: 对象初始化器没有替代非默认构造函数。在初始化对象时,可以使用对象初始化器来设置属性和字段值,但这并不意味着总是知道需要初始化什么状态。通过构造函数可以为函数指定对象需要什么值,在执行代码,以立即响应这些值。
- c#3.0 新特性 ---对象初始化器
- C# 3.0特性-- 对象初始化器
- C#3.0新特性之对象初始化器
- C# 3.0新特性之对象和集合初始化
- Orcas中C#语言的新特性:自动属性,对象初始化器,和集合初始化器
- Orcas中C#语言的新特性:自动属性,对象初始化器,和集合初始化器
- C#的新特性:自动属性,对象初始化器,和集合初始化器
- C#对象初始化器
- C#对象初始化器
- c# 对象初始化器
- C#3.0中对象初始化器和集合初始化器
- C# 3.0新特性之Automatic Properties(自动属性)、Object Initializers(对象初始化器)、Collection Initializers(集合初始化器)和Extension Methods(扩展方法)
- C#3.5语言新特性(一)-对象集合初始化器
- Orcas中C#语言的新特性:自动属性,对象初始化器,和集合初始化器(转自:清清月儿)
- c# 使用初始化器初始化对象
- C# 3.0--对象初始化语法
- C#3.0对象初始化器和匿名类型
- C# 3.0之自动属性和对象初始化器举例
- 描述一下android的系统架构
- 用timestamp找回數據
- LINUX的awk和sed的常用用法
- loadView、viewDidLoad、viewWillAppear、viewDidAppear等详解
- 如何成为一个优秀的程序员(宋劲杉)
- C# 3.0特性-- 对象初始化器
- (汉字问题2)PrepareStatement 中文参数问题
- 继hibernate后又一ORM框架commons-dbutils的JDBC第一次使用日记
- java_sca
- Hyper-V 支持三种网络类型: 外部,内部,专用
- 在一串数字中插入r个乘号,使得乘积最大
- 【四招快速关闭电脑程序】
- smarty模板引擎
- hdu 1728 逃离迷宫(DFS)