【问题标题】:How to create a property that is enum type如何创建枚举类型的属性
【发布时间】:2015-10-09 09:51:00
【问题描述】:
enum E_Color { red, black };
private E_Color Color
{
    get { return Color; }
    set { Color = value; }
}
public Card(int color, int num)
{
    Color = (E_Color)color;
    Number = num;
}

所以这是我的代码,我不知道问题出在哪里,我很确定它在这里。我是 C# 新手(我以前用 C++ 编程)所以我不知道该怎么做。 当在编译中运行它但打印“由于 StackOverflowException 而终止进程。” 如果我进入它只是停止调试并在它到达构造函数时完成。

【问题讨论】:

  • 如果收到错误信息,请添加。否则请解释您的问题。
  • 我认为问题在于您的财产会自行返回。写就够了:private E_Color Color { get; set; }
  • 是不知道怎么写public Card(E_Color color, int num)才不会报错的问题?

标签: c# constructor enums


【解决方案1】:

这里的枚举没有问题。问题出在你的财产上。您正在返回属性本身,这会导致无限循环 (Stackoverflow)。

改成这样:

private E_Color Color
{
    get; set;
}

你基本上在做的是这样的:

private E_Color GetColor()
{
    return GetColor();
}

【讨论】:

  • 好的,谢谢。有效。我应该记下这个问题吗?这有点愚蠢。
  • 我很确定你不能,因为它有答案。
  • 我会说保留这个问题,这是一个很好的例子,说明小事情如何产生奇怪的问题!
  • 把问题留在那里。取下它不会从过去抹去它:p
猜你喜欢
  • 1970-01-01
  • 2015-02-10
  • 1970-01-01
  • 1970-01-01
  • 2017-08-19
  • 2019-03-08
  • 2010-11-26
  • 1970-01-01
  • 2022-01-09
相关资源
最近更新 更多