C#继承构造函数

Nov*_*ato 0 c# asp.net asp.net-mvc constructor class

我需要很多类属性,只为一个字段创建另一个构造函数比继承更难.

例如,我有一个带有一个主要构造函数的类和一个带有一个参数的构造函数

public class mySampleClass
{
    //properties
    public string Default{get;set;}

    public mySampleClass()
    {
       // fill all properties with default values 
         Default = "First";  
    }

    public mySampleClass(string value)
    {
       // i want here to use default constructor and just manipulate  some property with 'value' 
        value = Default; // value = First
    }
}
Run Code Online (Sandbox Code Playgroud)

第二个构造函数是否可以从第一个构造函数继承所有默认属性,只是从附加值中操作一些数据,或者我必须再次为第二个构造函数构建所有默认值?

Jon*_*eet 9

目前尚不清楚"继承所有默认属性"是什么意思,但你可以让第二个构造函数调用第一个像这样:

// Class name fixed to comply with conventions
public MySampleClass(string value) : this()
{
}
Run Code Online (Sandbox Code Playgroud)

但是,通常情况下,你会做相反的事情:使用更少的参数调用构造函数调用具有更多参数的构造函数,只留下最具体的构造函数执行任何工作:

public MySampleClass() : this("default value")
{
   // Empty
}

public MySampleClass(string value)
{
   // Assign values to properties here
}
Run Code Online (Sandbox Code Playgroud)

这通常可以避免在无参数构造函数中设置默认值,然后在另一个构造函数中覆盖它.