c#中的编译错误CS0120

本文关键字:错误 CS0120 编译 | 更新日期: 2023-09-27 18:09:25

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

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

如果我写一个方法来获取颜色字符串,我仍然得到相同的错误:

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

获取颜色字符串的方法如下:

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

我的对象CQ有以下定义:

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

如何修复这个错误?

c#中的编译错误CS0120

为了访问方法ConvertFromString,您需要创建ColorConverter类的实例

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);

有关更多信息,请参阅此MSDN文档。