我有一个具有子类的基类(我想应该是一个结构,但不确定是否合适)和一个方法。

class Base
{
    protected class SubClass
    {
        public string word;
        public int number;
    }

    protected void SomeMethod()
    {
        this.SubClass.word //this is where I'm struggling
    }
}


然后,我有几个实现我的baseClass的子类,实例化Base.SubClass并将一些值添加到实例化的类。

class ChildClass1 : Base
{
    public childSubClass = new SubClass();

    public void DoSomethingRidiculous()
    {
        childSubClass.word = "WhoFarted";
    }
}

class ChildClass2 : Base
{
    public childSubClass = new SubClass();

    public void DoSomethingRidiculous()
    {
        childSubClass.word = "ItStinks";
    }
}


如果可能的话,我希望能够从Base类中获取SubClass.word的值。我认为我尝试实现我的想法可能是错误的。

最佳答案

我不确定您是否真的需要子类化/类嵌套。只需移出类SubClass声明,然后声明SubClass类型的受保护字段/属性即可。

public class SubClass
{
   public string word;
   public int number;
}

public class Base
{
    protected SubClass subClassInstance = new SubClass();

    protected void SomeMethod()
    {
        this.subClassInstance.word //this is where I'm struggling
    }
}


然后,您可以在subClassInstanceChildClass1内访问ChildClass2

关于c# - 访问基类中的子类…但有所不同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7692054/

10-10 17:32