文本框.文本不会显示所需的输出

本文关键字:文本 输出 显示 | 更新日期: 2023-09-27 18:18:32

我得到了一个制作凯撒密码的项目。我被困在textBox2。文本,即不显示加密文本。

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

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

    {
        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;

    }

文本框.文本不会显示所需的输出

这很可疑:

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++ )循环立即退出(零迭代)。