C#中的编译器错误CS0120

时间:2015-08-24 11:26:43

标签: c# asp.net

我尝试将包含十六进制代码的字符串转换为颜色。 我有以下代码:

CQ currCQ = new CQ();     
string color_startBorderMC = null;
color_startBorderMC = currCQ._color_MCBorder; //returns string! e.g. #ff00ff
Color _startBorderMC_color = new Color();
_startBorderMC_color = ColorConverter.ConvertFromString(color_startBorderMC); //error

如果我写一个获取Color String的方法,我仍会得到同样的错误:

  

非静态字段,方法或属性需要对象引用System.ComponentModel.TypeConverter.ConvertFromString(string)'

获取颜色字符串的方法是:

internal string getMCBorderColor()
{
    return this._color_MCBorder;
}

My Object CQ具有以下定义:

public class CQ
{
    public string   _color_mostcriticallBorder  {set; get; };
}

如何解决此错误?

1 个答案:

答案 0 :(得分:3)

您需要创建ColorConverter类的实例才能访问方法ConvertFromString

CQ currCQ = new CQ();     
string color_startBorderMC = null;
color_startBorderMC = currCQ._color_MCBorder; //returns string! e.g. #ff00ff
Color _startBorderMC_color = new Color();
ColorConverter converter = new ColorConverter();//create an instance of ColorConverter.
_startBorderMC_color = converter.ConvertFromString(color_startBorderMC);

有关更多信息,请参阅this msdn文档。