c#switch语句System.IndexOutOfRangeException

时间:2014-07-05 07:43:20

标签: c# switch-statement indexoutofrangeexception

我正在制作一个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。任何帮助表示赞赏。

0 个答案:

没有答案