TextBox.Text不会显示所需的输出

时间:2013-06-14 17:48:26

标签: c# windows

我有一个制作凯撒密码的项目。我被困在textBox2.text中,即它没有显示加密文本。

请检查我的代码和指南,我将非常感谢!

请告诉我,如果我的代码中有其他错误,那将是非常好的。

    {
        key = int.Parse(textBox3.Text) - 48;
       // Input.ToLower();


        int size = Input.Length;

        char[] value = new char[size];

        char[] cipher = new char[size];

        for (int i = 0; i < size; i++)
        {

            value[i] = Convert.ToChar(Input.Substring(i, 1));

        }
         for (int re = 0; re < size; re++)
        {

            int count = 0;
            int a = Convert.ToInt32(value[re]);

            for (int y = 1; y <= key; y++)
            {

                if (count == 0)
                {

                    if (a == 90)

                    { a = 64; }

                    else if (a == 122)

                    { a = 96; }

                    cipher[re] = Convert.ToChar(a + y);

                    count++;

                }

                else
                {

                    int b = Convert.ToInt32(cipher[re]);

                    if (b == 90)

                    { b = 64; }

                    else if (b == 122)

                    { b = 96; }

                    cipher[re] = Convert.ToChar(b + 1);



                }

            }

        }

        string ciphertext = "";




        for (int p = 0; p < size; p++)
        {

            ciphertext = ciphertext + cipher[p].ToString();

        }

        ciphertext.ToUpper();
        textBox2.Text = ciphertext;


    }

1 个答案:

答案 0 :(得分:2)

这非常可疑:

key = int.Parse(textBox3.Text) - 48;

48是一个神奇的数字,没有任何解释。大概你正在使用它,因为它是'0'的ASCII代码。但是int.Parse不会返回ASCII代码。

您可以使用(仅)int.Parse,或者获取文本框中第一个字符的ASCII码并对字符代码进行算术运算。但结合这些是不正确的。

  • key = int.Parse(textBox3.Text);

  • key = textBox3[0] - '0';

由于您当前的代码将key设置为负数,因此内部for( y = 1; y <= key; y++ )循环立即退出(零次迭代)。