Jar*_*iff -1 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;
}
}
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’。
我知道一个解决方法是在父类中做所有事情,并在我需要覆盖不同子类中的东西时使其抽象,但希望有一种方法可以在没有所有这些的情况下做我需要的事情,因为我找不到任何有用的东西当调查它时。
使用构造函数:
class ClassTwo : ClassOne
{
Stack<int> st;
ClassTwo()
{
st = MakeStack();
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
对于为什么在此处查找示例:了解 C# 字段初始化要求