我正在制作一个RGB到十六进制转换器,并且我使用switch语句将我需要的数字更改为字母。
public partial class Form1 : Form
{
int r;
int g;
int b;
int i = 8;
bool ft = true;
String[] recent = new String[9];
Color[] crecent = new Color[9];
String[] hex = new String[6];
int ihex1 = new int();
int ihex2 = new int();
int ihex3 = new int();
int ihex4 = new int();
int ihex5 = new int();
int ihex6 = new int();
Color rndc;
Random rnd = new Random();
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (ft)
{
ft = false;
for (int j = 0; j < 8; j++)
{
recent[j] = "";
crecent[j] = Color.FromArgb(255, 255, 255);
}
}
if(rText.Text.Equals("")){
r = rnd.Next(0, 256);
}
else
{
r = Convert.ToInt32(rText.Text);
}
if(gText.Text.Equals("")){
g = rnd.Next(0, 256);
}
else
{
g = Convert.ToInt32(gText.Text);
}
if(bText.Text.Equals("")){
b = rnd.Next(0, 256);
}
else
{
b = Convert.ToInt32(bText.Text);
}
textBox1.Text = r + ", " + g + ", " + b;
ihex1 = r / 16;
ihex2 = r % 16;
ihex3 = g / 16;
ihex4 = g % 16;
ihex5 = b / 16;
ihex6 = b % 16;
hex[1] = "" + ihex1;
hex[2] = "" + ihex2;
hex[3] = "" + ihex3;
hex[4] = "" + ihex4;
hex[5] = "" + ihex5;
hex[6] = "" + ihex6;
switch (ihex1)
{ case 0:
break;
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
case 7:
break;
case 8:
break;
case 9:
break;
case 10:
hex[1] = "A";
break;
case 11:
hex[1] = "B";
break;
case 12:
hex[1] = "C";
break;
case 13:
hex[1] = "D";
break;
case 14:
hex[1] = "E";
break;
case 15:
hex[1] = "F";
break;
default:
break;
}
r在代码的前面是随机分配的,但实际上并不需要查看问题。 我在第一次启动switch语句的行上收到System.IndexOutOfRangeException。任何帮助表示赞赏。