繁体   English   中英

在子 class c# 中使用父 class 中的方法

[英]Using a method made in a parent class in a child class c#

我有两节课:

    class ClassOne 
{
    Stack<int> s = new Stack<int>();
    public Stack<int> MakeStack()
    {
        for (int i = 0; i < 10; i++)
        {
            
            s.Push(i);
        }
        return s;
    }

}


class ClassTwo:ClassOne
{
    Stack<int> st = MakeStack();
    int[] array = new int[2];
    private int[] GetFirstTwo()
    {
        for (int i = 0; i < 1; i++)
        {
            array[i] = st.Pop();
        }
        
        return array;
    }

}

但是当我尝试在子 class 中使用 MakeStack 时,它会给出错误“字段初始化程序无法引用非静态字段、方法或属性 'ClassOne.MakeStack'。

我知道一个解决方法是在父 class 中做所有事情,并在我需要覆盖不同子类中的东西时使其抽象,但希望有一种方法可以在没有所有这些的情况下做我需要的事情,因为我找不到任何有用的东西调查时。

使用构造函数:

class ClassTwo : ClassOne
{
    Stack<int> st;
    
    ClassTwo()
    {
        st = MakeStack();
    }
    // ...
}

对于为什么在这里查看示例: 了解 C# 字段初始化要求

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM