C#在运行时将只读变量添加到类中

时间:2016-06-10 20:36:00

标签: c#

我正试图找到一种方法来为“调色板”添加颜色。不学习计算机科学的最糟糕的部分是很难说出问题。我一直在寻找在运行时在类中添加枚举。因为理想情况下,我可以使用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),我想将黄色添加到调色板中。

2 个答案:

答案 0 :(得分:0)

我认为你应该从重新设计你的应用程序开始,使用一组颜色而不是调色板上的字段。但是,您可以使用ExpandoObject来实现您正在寻找的内容。我是从另一篇文章here中找到的。

答案 1 :(得分:0)

C#的设计不是为了动态创建变量。就像@skalpin说的那样,重新设计几乎是你唯一的解决方案。