此代码生成适用于:
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+.) 触发“快速操作和重构”菜单。
鼠标
右键单击并选择“快速操作和重构”菜单。
单击 图标(如果文本光标已在此类中的空行上,它会出现在左边缘)。
3、从下拉菜单中选择“生成构造函数”。
“选取成员”对话框随即打开。
4、选择要包含为构造函数参数的成员。 可使用上下箭头对其排序。 选择 “确定” 。
可以选中“添加 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>
中生成构造函数(包含属性)”。
基于所选字段生成构造函数(仅限 C#)
1、突出显示要在生成的构造函数中内附的成员:
class Person { public string Name{get; set;} public string Surname{get; set;} public int Age {get; set;} }
2、接下来,执行以下操作之一:
键盘
按 (Ctrl+.) 触发“快速操作和重构”菜单。
鼠标
右键单击并选择“快速操作和重构”菜单。
单击 图标(如果文本光标已在包含选定内容的行上,它会出现在左边缘)。
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+.) 触发“快速操作和重构”菜单。
鼠标
右键单击并选择“快速操作和重构”菜单。
将鼠标悬停在红色波形曲线上,然后单击出现的 图标。
单击 图标(如果文本光标已在具有红色波形曲线的行上,它会出现在左边缘)。
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+.) 触发“快速操作和重构”菜单。
鼠标
右键单击并选择“快速操作和重构”菜单。
将鼠标悬停在红色波形曲线上,然后单击出现的 图标。
单击 图标(如果文本光标已在具有红色波形曲线的行上,它会出现在左边缘)。
4、从下拉菜单中选择“将参数添加到 'TypeName(...)'”。
这会使用从参数用法推断出的类型将其添加到构造函数。
还可以向现有方法添加参数。
基于构造函数参数创建和初始化字段或属性(仅限 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+.) 触发“快速操作和重构”菜单。
鼠标
右键单击并选择“快速操作和重构”菜单。
单击 图标(如果文本光标已在包含所添加的参数的行上,它会出现在左边缘)。
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;} }