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)
?@SriramSakthivelStudent(string path)
中的code>只是一个简单的例子,我只是在寻找一个很好的解决方案,因为两个ctor在基类中有不同的实现(我正在阅读一些文件)。你的解决方案是可以的,但它只是给我增加了一张我惯用的支票avoid@Eli-如果您提取2个私有方法并添加一个if语句,根据path
是否为null调用适当的方法,则可以非常清晰地执行此操作。