构造函数中的枚举 - 如何?

Edw*_*ker 9 c# enums

我对此练习有一个问题:定义一个代表圆圈的类.保持pi值的常量定义类,以及在readonly中保持圆的颜色定义的变量.可能的颜色在枚举中定义.变量定义类以保持圆的半径和用于计算对象的周长和面积的函数.这就是我所做的:

    class Circle
{
    public const double PI = 3.14;
    public readonly enum color { Black, Yellow, Blue, Green };
    int radius;
    public Circle(string Color,int radius)
    {
        this.radius = radius;
    }
}
Run Code Online (Sandbox Code Playgroud)

我不知道如何将枚举选择放在构造函数中.谢谢你的帮助.

AD.*_*Net 10

public enum Color { Black, Yellow, Blue, Green };

class Circle
{
    public const double PI = 3.14;

    private Color _color;
    int radius;

    public Circle(int radius, Color color)
    {
        this.radius = radius;
        this._color = color;
    }
}
Run Code Online (Sandbox Code Playgroud)

你也可以传递颜色的字符串,但是你必须要做Enum.Parse(枚举类型,字符串值).


Bra*_*etz 6

只需在类定义之外定义枚举并声明该类型的本地只读实例即可。

enum Color 
{ 
    Black, 
    Yellow, 
    Blue, 
    Green 
};

class Circle
{
    public const double PI = 3.14;
    public readonly Color color;

    int radius;

    public Circle(string colorValue, int r)
    {
        color = ( Color ) Enum.Parse( typeof( Color ), colorValue );
        radius = r;
    }
}
Run Code Online (Sandbox Code Playgroud)