C# 返回父方法C中的子类#

C# 返回父方法C中的子类#,c#,oop,C#,Oop,我有家长课: public abstract class ParentClass { public ParentClass ParentMethod() { ... } } 我还有两个孩子: public class ChildA : ParentClass { public ChildA ChildAMethod1() { ... return this; } public ChildA ChildAMethod

我有家长课:

public abstract class ParentClass
{
     public ParentClass ParentMethod() { ... }
}
我还有两个孩子:

public class ChildA : ParentClass
{
    public ChildA ChildAMethod1()
    {
        ... 
        return this; 
    }

    public ChildA ChildAMethod2()
    {
        ... 
        return this; 
    }
}

public class ChildB : ParentClass
{
     public ChildB ChildBMethod() { ... 
            return this; }
}
在这种情况下,我有可能这样写:

new ChildA().ChildAMethod1().ChildAMethod2();
new ChildA().ParentMethod().ChildAMethod1().ChildAMethod2();

new ChildB().ParentMethod().ChildBMethod1();
但如何实现这样写的可能性:

new ChildA().ChildAMethod1().ChildAMethod2();
new ChildA().ParentMethod().ChildAMethod1().ChildAMethod2();

new ChildB().ParentMethod().ChildBMethod1();

这种可能性还有其他模式吗?

如果子类的方法不是从父类继承的,那么父类和子类之间的联系是什么

由于类已经解耦,您可以通过接口强调解耦:

public interface INext
{
    INext ChildAMethod1();
    INext ChildAMethod2();
}

public abstract class ParentClass
{
    public INext ParentMethod()
    {
        ...
        return new ChildA(...);
    }
}

public class ChildA : ParentClass, INext
{
    public INext ChildAMethod1()
    {
        ... 
        return this; 
    }

    public INext ChildAMethod2() 
    {
        ... 
        return this; 
    }
}

使ParentMethod泛型

public abstract class ParentClass
{
    public T ParentMethod<T>() where T:ParentClass
    {
        return (T)this; 
    }
}
公共抽象类父类
{
公共T ParentMethod(),其中T:ParentClass
{
返回(T)这个;
}
}
那就这样说吧

new ChildA().ParentMethod<ChildA>().ChildAMethod1().ChildAMethod2();
new ChildB().ParentMethod<ChildB>().ChildBMethod1();
new ChildA().ParentMethod().ChildAMethod1().ChildAMethod2();
新建ChildB().ParentMethod().ChildBMethod1();

是的,这就是我要找的。我稍微修改了一下。刚刚公开了抽象类ParentClass,然后公开了类ChildA:ParentClass公共类ChildB:ParentClass,并在子方法中返回T。非常感谢。ParentMethod是否也返回此对象,或者它可以是ParentClass类型的任何对象?