我正试图找到一种方法来为“调色板”添加颜色。不学习计算机科学的最糟糕的部分是很难说出问题。我一直在寻找在运行时在类中添加枚举。因为理想情况下,我可以使用Console.ReadLine()来添加新颜色。
class Program
{
static void Main(string[] args)
{
Color _Color = new Color();
Console.WriteLine(Palette.Black);
// _Color.addColor(Console.ReadLine(), Console.ReadLine());
Console.ReadKey();
}
}
public class Palette
{
private readonly string color;
public static readonly Palette Black = new Palette("black");
public static readonly Palette Red = new Palette("red");
public static readonly Palette Green = new Palette("green");
public static readonly Palette Blue = new Palette("blue");
//I want to be able to create new colors by using the Color.addColor() method
private Palette(string inputColor) { this.color = inputColor; }
public override string ToString() { return this.color; }
}
public class Color
{
public void addColor(string colorName, string color)
{
//create a new color into Palette using form:
// public static readonly Palette colorName = new Palette("color");
}
}
我希望能够在输入控制台后执行Console.WriteLine(Palette.Yellow),我想将黄色添加到调色板中。
答案 0 :(得分:0)
我认为你应该从重新设计你的应用程序开始,使用一组颜色而不是调色板上的字段。但是,您可以使用ExpandoObject来实现您正在寻找的内容。我是从另一篇文章here中找到的。
答案 1 :(得分:0)
C#的设计不是为了动态创建变量。就像@skalpin说的那样,重新设计几乎是你唯一的解决方案。