C#基础 [10] 构造函数
2013-01-02 12:42
302 查看
一、构造函数概述
构造函数是在创建给定类型的对象时执行的类方法。构造函数具有与类相同的名称,它是类或结构中第一个被执行的方法,通常用于申请内存、初始化新对象的数据成员。任何时候,只要创建类或结构,就会调用它的构造函数。构造函数可以重载,即类或结构可能有多个接受不同参数的构造函数。构造函数使得程序员可设置默认值、限制实例化以及编写灵活且便于阅读的代码。构造函数也被称为构造器或构造方法。
二、实例构造函数
1.默认构造函数
如果在类声明中没有显式声明构造函数,那么编译器会自动生成一个隐式的默认构造函数。该构造函数的函数名和类名相同、public、没有参数、方法体为空,它实例化对象,并且将成员字段初始化为成员类型的默认值。无论何时,只要使用 new 运算符实例化对象,并且不为 new 提供任何参数,就会调用默认构造函数。下面是一个Person类的声明,没有显式声明构造函数。
View Code
参考:http://msdn.microsoft.com/zh-cn/library/ms173116(VS.100).aspx
六、对象初始化器
一般我们创建对象都是使用对象创建表达式:即“new运算符+类的构造函数”。通过这种方式创建完对象之后,再为对象的属性赋值,很麻烦。有一个对象创建表达式的升级版本,它可以简化对象的创建和初始值设定的过程:就是用对象初始化器。对象初始化器有称为“对象初始值设定项”或“对象初始化列表”,用于在创建对象的表达式中为对象的成员赋初值。下面是使用对象初始化器创建对象的两种方式:
第二种方式推荐使用,因为它更加简洁,参数列表也是没有必要的。此外,推荐使用var关键字代替类型名。
参考:http://msdn.microsoft.com/zh-cn/library/ace5hbzh(VS.100).aspx
构造函数是在创建给定类型的对象时执行的类方法。构造函数具有与类相同的名称,它是类或结构中第一个被执行的方法,通常用于申请内存、初始化新对象的数据成员。任何时候,只要创建类或结构,就会调用它的构造函数。构造函数可以重载,即类或结构可能有多个接受不同参数的构造函数。构造函数使得程序员可设置默认值、限制实例化以及编写灵活且便于阅读的代码。构造函数也被称为构造器或构造方法。
二、实例构造函数
1.默认构造函数
如果在类声明中没有显式声明构造函数,那么编译器会自动生成一个隐式的默认构造函数。该构造函数的函数名和类名相同、public、没有参数、方法体为空,它实例化对象,并且将成员字段初始化为成员类型的默认值。无论何时,只要使用 new 运算符实例化对象,并且不为 new 提供任何参数,就会调用默认构造函数。下面是一个Person类的声明,没有显式声明构造函数。
View Code
class Program { static void Main(string[] args) { // 实例化一个Person类的对象 Person person1 = new Person("George", 40); // 采用对象person1的值实例化另一个Person类的对象 Person person2 = new Person(person1); Console.WriteLine(person2.Details); Console.ReadKey(); } } class Person { private string name; private int age; // 复制构造函数 public Person(Person previousPerson) { name = previousPerson.name; age = previousPerson.age; } // 实例构造函数 public Person(string name, int age) { this.name = name; this.age = age; } // Get 访问器 public string Details { get { return name + " is " + age.ToString(); } } }
参考:http://msdn.microsoft.com/zh-cn/library/ms173116(VS.100).aspx
六、对象初始化器
一般我们创建对象都是使用对象创建表达式:即“new运算符+类的构造函数”。通过这种方式创建完对象之后,再为对象的属性赋值,很麻烦。有一个对象创建表达式的升级版本,它可以简化对象的创建和初始值设定的过程:就是用对象初始化器。对象初始化器有称为“对象初始值设定项”或“对象初始化列表”,用于在创建对象的表达式中为对象的成员赋初值。下面是使用对象初始化器创建对象的两种方式:
// 对象初始化器1:包含参数列表 var person1 = new Person("哈哈") { Name = "哈哈" }; // 对象初始化器2:省略参数列表(推荐) var person2 = new Person { Name = "汤姆", Age = 18 };
第二种方式推荐使用,因为它更加简洁,参数列表也是没有必要的。此外,推荐使用var关键字代替类型名。
参考:http://msdn.microsoft.com/zh-cn/library/ace5hbzh(VS.100).aspx
相关文章推荐
- 开源Math.NET基础数学类库使用(10)C#进行基本数据统计
- C#基础-构造函数
- 10、C#基础整理(集合)
- 【C#基础知识】静态构造函数,来源于一道面试题的理解
- 10-12C#基础--运算符
- C#构造函数与析构函数--C#基础
- C#基础知识整理:基础知识(10) 静态
- C#基础(七)构造函数、结构
- c#基础 类 构造函数 方法
- C#基础(12)——构造函数、析构函数
- C#基础知识系列五(构造函数)
- 2012-04-13 C#基础学习笔记(10)
- C#基础系列(10)-- 第三部分 面向对象相关 -- 浅复制与深复制(3)
- C#基础知识整理:基础知识(10) 静态
- c#语言基础(3)----类的构造函数
- C#基础(10)——飞行棋游戏
- C#学习基础--静态构造函数
- 黑马程序员_学习日记5_C#基础归纳总结之派生类的构造函数
- c#基础(1)之 构造函数
- C#基础--构造函数/析构函数/常用函数