输入字符串输出颜色对象c#的方法

1 c# methods colors object

我试图在C#中创建一个方法,从组合框输入一个字符串值并返回一个颜色对象.我已经建立了如何使用if/else语句来比较字符串并返回颜色对象,但我想减少我正在编写的代码量.

public static ColorBeingReturned(string TextFromBox)
{
   newcolor = Color.TextFromBox;
   return newcolor;
}
Run Code Online (Sandbox Code Playgroud)

我确信代码都是不正确的,但它让你知道我正在尝试做什么.以下是if/else语句的内容摘要.

public object ColorBeingReturned(string TextFromBox)
{
    if (TextFromBox == "Red")
      return Color.Red;
    else if (TextFromBox == "Blue")
      return Color.Blue;
    else
      return Color.White;
}
Run Code Online (Sandbox Code Playgroud)

基本上不是必须编写所有那些if else语句而是我宁愿一些语句,这样如果我在列表中添加其他颜色,它将是一个更容易的过渡.

Meh*_*taş 8

你可以使用Color.FromName(TextFromBox)方法.

http://msdn.microsoft.com/en-us/library/system.drawing.color.fromname.aspx

你也可以使用反射

public Color ColorBeingReturned(string TextFromBox)
{
    return (Color)(typeof (Color)
                  .GetProperty(TextFromBox,
                       BindingFlags.Static|
                       BindingFlags.Public|
                       BindingFlags.GetProperty))
                  .GetValue(null, null);
}
Run Code Online (Sandbox Code Playgroud)