小编Jar*_*iff的帖子

在子类 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;
    }

}
Run Code Online (Sandbox Code Playgroud)

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

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

c# oop inheritance

-1
推荐指数
1
解决办法
41
查看次数

标签 统计

c# ×1

inheritance ×1

oop ×1