抱歉,如果以前已经回答过,但是我一直在阅读和搜索,找不到答案。
假设我有一个数组,string[] myColors = {"red","white","blue"};
并且选择了其中一种颜色,例如,通过访问数组的第n个成员:myColors[2]
这将是字符串“ blue”。
另外,我有一个类box,其中我创建了一个实例myBox。该类具有类型为Color的属性boxColor。并且该Color类型的可能值包括Color.red = RGB(255,0,0),Color.white = RGB(255,255,255)和Color.blue = RGB(0,0,255)(尽管出于参数考虑) ,这些枚举值的实际值和类型无关紧要,它们可以等效为float
或任何其他C#类型)。
我怎么会去的myBox.boxColor设置为值,我从拿到myColors[2]
?
即像 myBox.boxColor = (Color) (value of the string myColors[2]);
在这种情况下,我实际上可以在屏幕上以该特定颜色绘制。
您必须具有某种类型的映射。我在这里使用字典,但还有其他选择。我Color
根据您的问题使用了,但是您可以Color
用您选择的任何其他类或结构替代。
public struct Color
{
int r, g, b;
public Color(int r, int g, int b)
{
this.r = r;
this.g = g;
this.b = b;
}
}
public static class BetterColors
{
static Dictionary<string, Color> colorDictionary = new Dictionary<string, Color>();
static BetterColors()
{
colorDictionary.Add("Red", new Color(255, 2, 4));
colorDictionary.Add("Blue", new Color(0, 3, 251));
colorDictionary.Add("Green", new Color(0, 200, 0));
}
static public Color GetColor(string colorName)
{
return colorDictionary[colorName];
}
}
class Box
{
public Color boxColor { get; set; }
}
class Program
{
static void Main()
{
string[] myColors = { "Red", "Green", "Blue" };
Box myBox = new Box();
myBox.boxColor = BetterColors.GetColor(myColors[1]);
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句