C# 如何创建枚举类型的属性

C# 如何创建枚举类型的属性,c#,constructor,enums,C#,Constructor,Enums,这是我的代码,我不知道问题出在哪里,我很确定它就在这里。我是C的新手,我用C++编程,所以我不知道怎么做。 在编译但打印中运行时,由于StackOverflowException,进程终止。 如果我进入它,当它到达构造函数时就停止调试并完成。这里的枚举没有问题。问题出在你的财产上。您正在返回属性本身,这会导致无限循环堆栈溢出 将其更改为: enum E_Color { red, black }; private E_Color Color { get { return Color; }

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

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

将其更改为:

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;
}
你基本上是这样做的:

private E_Color Color
{
    get; set;
}

如果您收到错误消息,请添加它。否则请解释你的问题。我认为问题在于你的财产会自动归还。写下就足够了:private E_Color Color{get;set;}问题是您不确定如何编写public CardE_Color Color,int num而不出错?好的,谢谢。成功了。我应该记下这个问题吗?它有点傻。我很确定你不能,因为它有答案。我要说的是,保留这个问题,这是一个很好的例子,说明小事情会产生奇怪的问题!把问题留在那里。把它取下来不会把它从过去抹去:p
private E_Color GetColor()
{
    return GetColor();
}