将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