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指的是我的实际代码,而不是我编写的这个伪代码。您现在已经编辑了它