我有一个卡片类 - 每张卡片都是四种颜色之一。每种颜色都有与之相关的有趣数据——比如十六进制#和数字表示。我原本打算使用枚举,但我不知道如何包含这另外两个属性。
我希望能够通过 Colors.Red.Hex 或 Colors.Red.Id 引用 Colors.Red 和 Colors.Blue 等颜色,以及每种颜色背后的数据。这里合适的数据结构是什么?
我有一个卡片类 - 每张卡片都是四种颜色之一。每种颜色都有与之相关的有趣数据——比如十六进制#和数字表示。我原本打算使用枚举,但我不知道如何包含这另外两个属性。
我希望能够通过 Colors.Red.Hex 或 Colors.Red.Id 引用 Colors.Red 和 Colors.Blue 等颜色,以及每种颜色背后的数据。这里合适的数据结构是什么?
所有这些东西都是内置的:
// using System.Drawing;
Color MyColor = Color.Red;
int Value = MyColor.ToArgb();
byte R = MyColor.R;
byte G = MyColor.G;
有一个名为 Color 的类,其属性名为 Hex 和 Id。然后拥有返回所需静态颜色的静态属性:(这是在 C# 中)
public class Color
{
public string Hex { get; private set; }
public int Id { get; private set; }
public static Color Red
{
get
{
return new Color
{
Hex = "DD0000",
Id = 1
};
}
}
public static Color Blue
{
get
{
return new Color
{
Hex = "hex for blue",
Id = 2
};
}
}
}
如果您不想创建自定义颜色,请将 Color 构造函数设为私有。