由于我想学习一些C#编程,我刚开始使用一个普通的控制台应用程序,你可以在这里找到代码(这是一个非常大的文件):
只有在我拨打MenuEntrys start = new MenuEntrys("StartGame");
错误它只是打印Process is terminated due to StackOverflowException.
并且“程序不再起作用”窗口。
有人知道解决方案吗?
提前致谢
答案 0 :(得分:4)
您的属性selected
是自引用的,这会导致无限循环。
使用属性时,他们需要引用一个单独的(通常是私有的)字段。
所以,而不是:
public bool selected
{
get { return selected; }
set { selected = value; }
}
您可以将其更改为:
private bool _selected
public bool Selected
{
get { return _selected; }
set { _selected = value; }
}
但是,如果您在获取或设置值时没有任何特定逻辑,则可以使用Auto Property。这为您节省了几行代码。
public bool Selected { get; set; }