Cards クラスがあります。各カードは 4 つの色の 1 つです。各色には、hex# や数値表現などの興味深いデータが関連付けられています。もともと列挙型を使用する予定でしたが、これらの他の 2 つのプロパティを含める方法がわかりません。
Colors.Red や Colors.Blue などの色と、Colors.Red.Hex または Colors.Red.Id を介して各色の背後にあるデータを参照できるようにしたいと考えています。ここで適切なデータ構造は何ですか?
Cards クラスがあります。各カードは 4 つの色の 1 つです。各色には、hex# や数値表現などの興味深いデータが関連付けられています。もともと列挙型を使用する予定でしたが、これらの他の 2 つのプロパティを含める方法がわかりません。
Colors.Red や Colors.Blue などの色と、Colors.Red.Hex または Colors.Red.Id を介して各色の背後にあるデータを参照できるようにしたいと考えています。ここで適切なデータ構造は何ですか?
Hex と Id というプロパティを持つ Color というクラスを用意します。次に、必要な静的色を返す静的プロパティを用意します (これは 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 コンストラクタをプライベートにします。
そのすべてが組み込まれています:
// using System.Drawing;
Color MyColor = Color.Red;
int Value = MyColor.ToArgb();
byte R = MyColor.R;
byte G = MyColor.G;