Generate Type Constructors
Alt+Insert | Constructor
The constructor generation wizard creates a non-default constructor that takes parameters for selected fields, properties and auto-properties.
All generated constructors follow the same pattern where:
Each field, property, or auto-property included in the constructor is initialized with a parameter.
The name of the parameter is derived from the name of the corresponding field or property.
If there are non-default base type constructors, the required parameters are added to the generated constructor and passed to the base class constructor.
In the example below, this command is used to generate a new Circle
constructor that takes two additional parameters to initialize _radius
and _center
fields.
Before generation | After generation |
---|---|
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;
}
}
|
Generate a constructor
In the editor, set the caret at the type name or within a type at the line where you want to insert a constructor. If the caret is on the type name, the generated code will be added in the beginning of the type declaration.
Press Alt+Insert or choose
from the main menu. Alternatively, you can press Ctrl+Shift+A, start typing the command name in the popup, and then choose it there.In the Generate popup, select Constructor.
- In the Generate dialog that appears, select type members that should be initialized in the new constructor. Optionally, select one or several base class constructors. For every selected base constructor, a new constructor will be generated that will call the base and additionally initialize selected members.
Optionally, use the following controls in the dialog:
Access Rights — allows you to define access rights for the generated constructor.
Check parameters for null (appears if the class has fields or properties of nullable types) — if this checkbox is selected, JetBrains Rider will generate configurable null checks for each nullable parameter, for example:
if (param == null) throw new ArgumentNullException(nameof(param));
Make parameters optional — if this checkbox is selected, JetBrains Rider will make all parameters of the generated constructor optional and add default values corresponding to the parameter types.
Click OK to complete the wizard.