C# 使用参数调用空构造函数和基

C# 使用参数调用空构造函数和基,c#,inheritance,constructor,C#,Inheritance,Constructor,我的代码是这样的 public class Student : Person { public Student() : base() { m_name = "No Name"; } public Student(string path) : base(path) { } } public class Person { public Person() { } public Person(stri

我的代码是这样的

public class Student : Person
{
    public Student() : base()
    {
         m_name = "No Name";
    }

    public Student(string path) : base(path)
    {

    }
}

public class Person
{
    public Person()
    {
    }
    public Person(string path)
    {
         //..do something with path
    }
}
现在,我想打电话-

Person myStudent = new Student("some path");
我希望它调用空的Ctor,也调用基(路径)Ctor

因此,我将获得一个属性为m_name=“No name”的学生实例


谢谢

您可以使用可选参数来统一构造函数逻辑

public class Student : Person
{
    public Student(string path = null) : base(path)
    {

    }
}

public class Person
{
    public Person(string path = null)
    {
        path = path ?? "sensible default";
    }
}

你不能,因为你的课程就是为了避免这种情况。只需更改它们的设计(此外,当您使用一个类时,您不应该知道这些实现细节,这本身就有问题!)您不能。不能调用两个构造函数,但可以将其链接。Whay阻止您添加
m_name=“No name”Student(string path)
?@SriramSakthivel
Student(string path)
中的code>只是一个简单的例子,我只是在寻找一个很好的解决方案,因为两个ctor在基类中有不同的实现(我正在阅读一些文件)。你的解决方案是可以的,但它只是给我增加了一张我惯用的支票avoid@Eli-如果您提取2个私有方法并添加一个if语句,根据
path
是否为null调用适当的方法,则可以非常清晰地执行此操作。