此代码生成适用于:

1、C#

2、Visual Basic

功能: 为类上的新构造函数快速生成代码。

使用时机: 想要引入新构造函数,并想要自动以适当的方式声明它,或要修改现有的构造函数时。

操作原因:可以在使用该构造函数之前对其进行声明,但此功能可自动使用适当的参数生成它。 此外,修改现有的构造函数需要更新所有的调用站点,使用此功能自动更新时除外。

方法:有多种生成构造函数的方法:

提示

若要继续执行本文中的操作,请确保为 Visual Studio 选择了 C# 设置。 有关为集成开发环境 (IDE) 选择设置的信息,请参阅选择环境设置。

生成构造函数并选择成员(仅限 C#)

1、将光标置于类中的任何空行:

class Person 
{
	public string Name{get; set;}
	public int Age {get; set;}
}

2、接下来,执行以下操作之一:

键盘

按 (Ctrl+.) 触发“快速操作和重构”菜单。

鼠标

右键单击并选择“快速操作和重构”菜单。

单击 图标(如果文本光标已在此类中的空行上,它会出现在左边缘)。

1.jpg

3、从下拉菜单中选择“生成构造函数”。

“选取成员”对话框随即打开。

4、选择要包含为构造函数参数的成员。 可使用上下箭头对其排序。 选择 “确定” 。

2.jpg

可以选中“添加 null 检查”复选框,为构造函数参数自动生成 null 检查。

会使用指定的参数创建构造函数。

class Person 
{
	public string Name{get; set;}
	public int Age {get; set;}
	
	public Person(string name, int age)
	{
		Name =name;
		Age =age;
	}
}


生成包含属性的构造函数(仅限 C#)

1、将光标放在实例上。

2、按 (Ctrl+.) 触发“快速操作和重构”菜单。

3、选择“在 <QualifiedName> 中生成构造函数(包含属性)”。

3.jpg

基于所选字段生成构造函数(仅限 C#)

1、突出显示要在生成的构造函数中内附的成员:

class Person 
{
	public string Name{get; set;}
	public string Surname{get; set;}
	public int Age {get; set;}
}

2、接下来,执行以下操作之一:

键盘

按 (Ctrl+.) 触发“快速操作和重构”菜单。

鼠标

右键单击并选择“快速操作和重构”菜单。

单击 图标(如果文本光标已在包含选定内容的行上,它会出现在左边缘)。

4.jpg

3、从下拉菜单中选择“生成构造函数 'TypeName(...)'”。

会使用所选的参数创建构造函数。

class Person 
{
	public Person(string name, string surname)
	{
		Name =name;
		Surname =surname;
	}
	
	public string Name{get; set;}
	public string Surname{get; set;}
	public int Age {get; set;}
}


基于新用法生成构造函数(C# 和 Visual Basic)

1、将光标置于红色波浪线上。 红色波浪线表示尚无针对构造函数的任何调用。

C#:

static void Main(string[] args)
{
	Person p =new Person("Bob", "Jones");
}

Visual Basic:

Sub Main()
	Dim p As New Person("Bob", "Jones")
End Sub

2、接下来,执行以下操作之一:

键盘

按 (Ctrl+.) 触发“快速操作和重构”菜单。

鼠标

右键单击并选择“快速操作和重构”菜单。

将鼠标悬停在红色波形曲线上,然后单击出现的  图标。

单击  图标(如果文本光标已在具有红色波形曲线的行上,它会出现在左边缘)。

1.jpg

3、从下拉菜单中选择“在 'TypeName' 中生成构造函数”。

使用从构造函数用法推断出的任意参数创建它。

C#:

class Person 
{
	private String v1;
	private String v1;
	public Person(string v1, String v2)
	{
		this.v1 =v1;
		this.v2 =v2;
	}
}

Visual Basic:

Class Person
	Private v1 As String;
	Private v2 As String;
	
	Public Sub New(v1 As String, v2 As String)
		Me.v1 =v1
		Me.v2 =v2
	End Sub
	
	Public Property FirstName As String;
	Public Property LastName As String;
End Class

向现有构造函数添加参数(仅限 C#)

1、从现有构造函数调用添加参数。

2、将光标放在有红色波形曲线的行上,该曲线指示使用了尚不存在的构造函数。

class Person 
{
	public Person(string name, string surname)
	{
		Name =name;
		Surname =surname;
	}
	
	public string Name{get; set;}
	public string Surname{get; set;}
	public int Age {get; set;}
}

class Program
{
	static void Main(string[] args)
	{
		var p =new Person("John", "Smith", 30);
	}
}

3、接下来,执行以下操作之一:

键盘

按 (Ctrl+.) 触发“快速操作和重构”菜单。

鼠标

右键单击并选择“快速操作和重构”菜单。

将鼠标悬停在红色波形曲线上,然后单击出现的  图标。

单击  图标(如果文本光标已在具有红色波形曲线的行上,它会出现在左边缘)。

2.jpg

4、从下拉菜单中选择“将参数添加到 'TypeName(...)'”。

这会使用从参数用法推断出的类型将其添加到构造函数。

3.jpg

还可以向现有方法添加参数。 

基于构造函数参数创建和初始化字段或属性(仅限 C#)

1、查找现有构造函数并添加参数:

class Person 
{
	public Person(string name, string surname, int age)
	{
		Name =name;
		Surname =surname;
	}
	
	public string Name{get; set;}
	public string Surname{get; set;}
}

2、将光标置于新添加的参数中。

3、接下来,执行以下操作之一:

键盘

按 (Ctrl+.) 触发“快速操作和重构”菜单。

鼠标

右键单击并选择“快速操作和重构”菜单。

单击  图标(如果文本光标已在包含所添加的参数的行上,它会出现在左边缘)。

1.jpg

4、从下拉菜单中选择“创建并初始化属性”或“创建并初始化字段” 。

这会声明并自动命名字段或属性,使其与你的类型相匹配。 还会添加一行代码,用于在构造函数正文中初始化字段或属性。

class Person 
{
	public Person(string name, string surname, int age)
	{
		Name =name;
		Surname =surname;
		Age =age;
	}
	
	public string Name{get; set;}
	public string Surname{get; set;}
	public int Age {get;}
}