Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何让我的程序从C中选择一种随机颜色,而不是一种设定的颜色?_C#_Random_Colors_Enumeration - Fatal编程技术网

C# 如何让我的程序从C中选择一种随机颜色,而不是一种设定的颜色?

C# 如何让我的程序从C中选择一种随机颜色,而不是一种设定的颜色?,c#,random,colors,enumeration,C#,Random,Colors,Enumeration,所以我在做一个程序,它包括3种不同颜色的颜色值 我想让程序从所有3个形状的4个列表中选择一个随机颜色,而不是设置一个颜色。虽然我似乎不明白 enum color { Red, Green, Blue, Black } //abstract class "Shape" which has 3 methods pretaining to attributes of the shape. abstract class Shape { pu

所以我在做一个程序,它包括3种不同颜色的颜色值

我想让程序从所有3个形状的4个列表中选择一个随机颜色,而不是设置一个颜色。虽然我似乎不明白

enum color
{

    Red,
    Green,
    Blue,
    Black
}

//abstract class "Shape" which has 3 methods pretaining to attributes of the shape.
abstract class Shape
{
    public abstract double getArea();
    public abstract double getPerimeter();
    public abstract color getColr();
}
//Triangle class which inherits the Shape methods
class Triangle : Shape
{
    public double s1;
    public double s2;
    public double s3;
    public color c = color.Red;

您可以让程序获得一个随机整数值,该数值将对应于您的一种颜色。 然后,只需从预先确定的颜色数组中获取颜色。记住在初始抽象类中将其设置为受保护的数组。 您可以从构造函数或受保护函数中的数组中获取颜色,这取决于您自己

颜色数组

从数组中获取随机颜色

到目前为止你试过什么

如果希望子类的颜色是随机的,可能不应该在这里指定它。当你调用构造器并分配s1、s2和s3时,你将要分配新的随机颜色

要从枚举中随机抽取,请执行以下操作:

Array colors = Enum.GetValues(typeof(color)); //enum naming should be capitalized
Random random = new Random();
Color randomColor = (Color)colors.GetValue(random.Next(colors.Length));

所以,您希望每次初始化一个形状时,它都有一种列出的颜色?
Random r = new Random();
int color_code = r.Next(0,3);
c = colors[color_code];
public color c = color.Red;
Array colors = Enum.GetValues(typeof(color)); //enum naming should be capitalized
Random random = new Random();
Color randomColor = (Color)colors.GetValue(random.Next(colors.Length));