How do I generate a constructor from class fields using Visual Studio (and/or ReSharper)?
In Visual Studio 2015 Update3 I have this feature.
Just by highlighting properties and then press Ctrl + . and then press Generate Constructor.
For example, if you've highlighted two properties it will suggest you to create a constructor with two parameters and if you've selected three it will suggest one with three parameters and so on.
It also works with Visual Studio 2017 and 2019.
ReSharper offers a Generate Constructor tool where you can select any field/properties that you want initialized. I use the Alt + Ins hot-key to access this.
C# added a new feature in Visual Studio 2010 called generate from usage. The intent is to generate the standard code from a usage pattern. One of the features is generating a constructor based off an initialization pattern.
The feature is accessible via the smart tag that will appear when the pattern is detected.
For example, let’s say I have the following class
class MyType {
}
And I write the following in my application
var v1 = new MyType(42);
A constructor taking an int
does not exist so a smart tag will show up and one of the options will be "Generate constructor stub". Selecting that will modify the code for MyType
to be the following.
class MyType {
private int p;
public MyType(int p) {
// TODO: Complete member initialization
this.p = p;
}
}