我的练习有问题:定义一个代表圆圈的类。保持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;
}
}
我不知道如何将枚举选择放在构造函数中。 谢谢你的帮助。
答案 0 :(得分: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;
}
}
您也可以传递颜色字符串,但是您必须执行Enum.Parse(枚举类型,字符串值)。
答案 1 :(得分:4)
只需在类定义之外定义Enum,并声明该类型的本地只读实例。
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;
}
}
答案 2 :(得分:0)
试试这个:
public enum ColorEnum {
Black,
Yellow,
Blue,
Green
}
public class Circle {
public const double PI = System.Math.PI;
public ColorEnum Color;
public Circle(ColorEnum color,int radius)
{
this.radius = radius;
this.Color = color
}
}
答案 3 :(得分:0)
Enum是一种类型。声明枚举时,实际上是在程序中定义了一个新类型。因此,如果要将Enum值作为参数传递,则需要声明该类型的参数。
答案 4 :(得分:0)
您需要声明enum
,然后将其用作变量类型。
public enum Color { Black, Yellow, Blue, Green };
public readonly Color myColor;
答案 5 :(得分:0)
试试这段代码
public enum Color { Black, Yellow, Blue, Green };
class Circle
{
public const double PI = 3.14;
public readonly Color color;
int radius;
public Circle(Color color, int radius)
{
this.color = color;
this.radius = radius;
}
}
使用
Circle circle = new Circle(Color.Blue,100);
答案 6 :(得分:0)
使用私有字段并仅公开getter。我也将enum作为一个公共类并直接传递给它:
class Circle
{
public const double PI = 3.14;
private Color _color;
int radius;
public Circle(Color Color,int radius)
{
_color = Color;
this.radius = radius;
}
public Color Color { return _color; }
}
public enum Color { Black, Yellow, Blue, Green }
答案 7 :(得分:0)
下面的内容
public enum Color
{
Black, Yellow, Blue, Green
}
class Circle
{
public const double PI = 3.14;
public Color Color { get; private set; }
int radius;
public Circle( int radius,Color color)
{
this.radius = radius;
this.Color = color;
}
}