将System.Drawing.Color转换为RGB和十六进制值

我正在使用C#尝试开发以下两个。我的操作方式可能会有问题,需要您的友善建议。另外,我不知道是否有任何现有方法可以做到这一点。

private static String HexConverter(System.Drawing.Color c)

{

String rtn = String.Empty;

try

{

rtn = "#" + c.R.ToString("X2") + c.G.ToString("X2") + c.B.ToString("X2");

}

catch (Exception ex)

{

//doing nothing

}

return rtn;

}

private static String RGBConverter(System.Drawing.Color c)

{

String rtn = String.Empty;

try

{

rtn = "RGB(" + c.R.ToString() + "," + c.G.ToString() + "," + c.B.ToString() + ")";

}

catch (Exception ex)

{

//doing nothing

}

return rtn;

}

谢谢。

回答:

我在这里看不到问题。该代码对我来说看起来不错。

我能想到的唯一的事情是,try / catch块是多余的-

颜色是一个结构和R,G和B是字节,所以C不能为空并且c.R.ToString()c.G.ToString()c.B.ToString()实际上不能失败(在我看到它们失败的唯一方法是使用NullReferenceException,并且它们实际上都不能为null)。

您可以使用以下方法清理整个内容:

private static String HexConverter(System.Drawing.Color c)

{

return "#" + c.R.ToString("X2") + c.G.ToString("X2") + c.B.ToString("X2");

}

private static String RGBConverter(System.Drawing.Color c)

{

return "RGB(" + c.R.ToString() + "," + c.G.ToString() + "," + c.B.ToString() + ")";

}

以上是 将System.Drawing.Color转换为RGB和十六进制值 的全部内容, 来源链接: utcz.com/qa/426310.html

回到顶部