生成类型构造函数
构造函数生成向导会创建一个非默认构造函数,该构造函数使用选定字段、属性和自动属性的参数。
所有生成的构造函数遵循相同的模式:
构造函数中包含的每个字段、属性或自动属性都使用参数进行初始化。
参数的名称来源于对应字段或属性的名称。
如果存在非默认的基类型构造函数,所需的参数会被添加到生成的构造函数中,并传递给基类构造函数。
在下面的示例中,此命令用于生成一个新的 Circle 构造函数,该构造函数接受两个额外的参数来初始化 _radius 和 _center 字段。
生成前 | 生成后 |
|---|---|
class Shape
{
public Shape(Color color)
{ Color = color; }
public Color Color { get; }
}
class Circle : Shape
{
int _radius;
Point _center;
string _id;
public Circle(Color color) : base(color)
{
}
}
|
class Shape
{
public Shape(Color color)
{ Color = color; }
public Color Color { get; }
}
class Circle : Shape
{
int _radius;
Point _center;
string _id;
public Circle(Color color) : base(color)
{
}
public Circle(Color color,
int radius, Point center, string id) : base(color)
{
_radius = radius;
_center = center;
_id = id;
}
}
|
生成构造函数
在编辑器中,将插入符号放置在类型名称处或类型内您希望插入构造函数的行上。 如果插入点位于类型名称上,生成的代码将添加到类型声明的开头。
请按 Alt+Insert 或从主菜单中选择 。 或者,您可以按 Ctrl+Shift+A ,在弹出窗口中开始输入命令名称,然后在那里选择它。
在 生成 弹出窗口中,选择 构造函数。
在出现的 生成 对话框中,选择应在新构造函数中初始化的类型成员。 (可选)选择一个或多个基类构造函数。 对于每个选定的基类构造函数,将生成一个新的构造函数,该构造函数将调用基类并额外初始化选定的成员。

可选地,在对话框中使用以下控件:
访问权限 — 允许您定义生成的构造函数的访问权限。
检查参数是否为空 (如果类具有可空类型的字段或属性时出现)— 如果选中此复选框,JetBrains Rider 将为每个可空参数 生成可配置的空值检查 ,例如:
if (param == null) throw new ArgumentNullException(nameof(param));将形参设为可选 — 如果选中此复选框,JetBrains Rider 将使生成的构造函数的所有参数变为可选,并添加与参数类型对应的默认值。
点击 确定 以完成向导。