⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 实例构造器.txt

📁 学习c#语言的一本好书可以帮助初学者
💻 TXT
字号:

实例构造器:是种特珠的方法,它们负责将类型的实例初始化到一个良好的状态.

如果我们没有显式为其定义实例构造器,C#会为我们定义一个公有的无参构造器(默认构造器)

一个类型可以定义多个实例构造器,每个构造器都必须有一个不同的签名.多个构造器可以有不同的访问限制.

对于可验证的代码,一个类的实例构造器在访问基类的继承字段之前,必须调用其基类的实例构造器.C#会自动产生对基类默认构造器的调用代码.

在少数情况下,类型的实例创建不需要调用实例构造器.

对于多个字段,多个构造器,我们因将这些公共初始化语句放在一个初始化构造器中,然后其他的构造显示地调用这个构造器,以减少代码的尺寸.

using System;
class SomeType
{
	Int32 x;
	String s;
	Double d;
	Byte b;
	public SomeType()
	{
		x=5;
		s="Hi here";
		d=3.14159;	
	}
	//下面的构造首选调用默认的构造器
	public SomeType(Int32 x):this()
	{
		this.x=x;	
	}
	public SomeType(String s):this()
	{
		this.s=s;
	}
}

C#不会为值类型自动产生默认的无参数构造器,CLR却允许我们为值类型定义构造器(包括无参数构造器).
要使一个值类型的无参构造器执行,必须显示地调用.

C#不允许值类型定义无参数构造器.( 结构不能包含显式的无参数构造函数)
using System;
struct Point
{
	//error
	//public Int32 x=5;//结构中不能有实例字段初始值设定项
	public Int32 x,y;
	public Point(Int32 x,Int32 y)
	{
		this.x=y;
		this.y=y;
	}
	//error
	//public Point()
	//{
	//	x=y=5;
	//}
}
class Rectangle
{
	public Point topLeft,bottomRight;
	public Rectangle()
	{
		topLeft=new Point(1,2);
		bottomRight=new Point(100,100);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -