C# 如何调用此构造函数和基构造函数

C# 如何调用此构造函数和基构造函数,c#,constructor,C#,Constructor,如何调用此和基构造函数?可以打电话吗 我想做的代码是这样的 public class ObservableTestCollection<T> : ObservableCollection<T> { public T Parent; public ObservableTestCollection(T parent) { Parent = parent; } public ObservableTestCollect

如何调用此和基构造函数?可以打电话吗

我想做的代码是这样的

public class ObservableTestCollection<T> : ObservableCollection<T>
{
    public T Parent;   
    public ObservableTestCollection(T parent)
    {
        Parent = parent;
    }
    public ObservableTestCollection(T parent, IEnumerable<T> source): base(source) ,this(parent)
    {

    }
}
公共类ObservableTestCollection:ObservableCollection
{
公营部门及家长;
公共ObservateTestCollection(T父级)
{
父母=父母;
}
公共ObservateTestCollection(T父级,IEnumerable源):基(源),此(父级)
{
}
}
如何调用此和基构造函数?可以打电话吗

不能像示例中那样调用此构造函数和基构造函数

为了实现您在示例中试图做的事情,您必须像这样重构它

public class ObservableTestCollection<T> : ObservableCollection<T> {
    public T Parent;   

    //This constructor calls the instance constructor
    public ObservableTestCollection(T parent) : this(parent, Enumerable.Empty<T>()) {

    }

    //Instance constructor is calling the base constructor
    public ObservableTestCollection(T parent, IEnumerable<T> source) : base(source) {
        Parent = parent;
    }
}
公共类ObservableTestCollection:ObservableCollection{
公营部门及家长;
//此构造函数调用实例构造函数
公共ObservableTestCollection(T父级):此(父级,可枚举的.Empty()){
}
//实例构造函数正在调用基构造函数
公共ObservableTestCollection(T父级,IEnumerable源):基(源){
父母=父母;
}
}
第二个构造函数用于填充局部变量并调用基构造函数。让我们将该构造函数称为实例构造函数。实例构造函数现在可以由其他构造函数使用
this
关键字调用

构造函数可以通过以下方式调用同一对象中的另一个构造函数: 使用this关键字。和base一样,它可以有或没有使用 参数以及构造函数中的任何参数都可以作为 参数,或作为表达式的一部分


语言不允许这样。您需要从两个构造函数中提取公共代码到方法,并从两个构造函数中调用它。这样,您的代码就不会被双重化。

最好换成另一种方式,不是吗?谢谢。这就是我想要的方法。