Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用在子类c的父类中创建的方法#_C#_Oop_Inheritance - Fatal编程技术网

C# 使用在子类c的父类中创建的方法#

C# 使用在子类c的父类中创建的方法#,c#,oop,inheritance,C#,Oop,Inheritance,我有两门课: class ClassOne { Stack<int> s = new Stack<int>(); public Stack<int> MakeStack() { for (int i = 0; i < 10; i++) { s.Push(i); } return s; } } 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;
    }

}
一类
{
堆栈s=新堆栈();
公共堆栈MakeStack()
{
对于(int i=0;i<10;i++)
{
s、 推(i);
}
返回s;
}
}
二班:一班
{
Stack st=MakeStack();
int[]数组=新的int[2];
私有int[]GetFirstTwo()
{
对于(int i=0;i<1;i++)
{
数组[i]=st.Pop();
}
返回数组;
}
}
但是当我试图在子类中使用MakeStack时,它给出了一个错误“字段初始化器不能引用非静态字段、方法或属性'ClassOne.MakeStack'

我知道一个解决方案是在父类内完成所有操作,并将其抽象化,以便在需要重写不同子类内的内容时使用,但我希望有一种方法可以完成我需要的操作,而无需所有这些,因为我在查看时找不到任何有用的内容。

使用构造函数:

class ClassTwo : ClassOne
{
    Stack<int> st;
    
    ClassTwo()
    {
        st = MakeStack();
    }
    // ...
}
第二类:第一类
{
斯塔克街;
第二类()
{
st=MakeStack();
}
// ...
}

关于为什么要在这里查找示例:

您指的是MakeDeck。我们看不到该代码。MakeDeck指的是我的实际代码,而不是我编写的这个伪代码。您现在已经编辑了它