我尝试使用 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 block 是多余的——Color 是一个结构体,R、G 和 B 是字节,所以 c 不能为 null 并且 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() + ")";
}
关于c# - 将 System.Drawing.Color 转换为 RGB 和十六进制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2395438/