繁体   English   中英

未分配的局部变量并将字符转换为字符串

[英]Unassigned local variable and converting char to string

制作一个将字母数字电话号码转换为常规电话号码的程序(例如 123-TRAVELS = 123-872-8357),但试图找出一些(可能很容易修复)错误以在 CheckButton_Click 变量下显示结果。 我现在让自己头疼,试图弄清楚这一点。 这些是粘贴代码的当前错误: 在此处输入图片说明

public static string PhoneToNumber(string str)
    {
        // Array version of value
        var phoneNumberArr = str.ToCharArray();
        for (int i = 0; i < str.Length; i++)
        {
            phoneNumberArr[i] = PhoneCharToNumber(phoneNumberArr[i]);
        }
        return new string(phoneNumberArr);
    }

    public static char PhoneCharToNumber(char value)
    {
        switch (value)
        {
            case 'A':
            case 'B':
            case 'C':
                return '2';
            case 'D':
            case 'E':
            case 'F':
                return '3';
            case 'G':
            case 'H':
            case 'I':
                return '4';
            case 'J':
            case 'K':
            case 'L':
                return '5';
            case 'M':
            case 'N':
            case 'O':
                return '6';
            case 'P':
            case 'Q':
            case 'R':
                return '7';
            case 'S':
            case 'T':
            case 'U':
                return '8';
            case 'V':
            case 'W':
            case 'X':
            case 'Y':
            case 'Z':
                return '9';
            default: return value;

        }
    }

private void CheckButton_Click(object sender, EventArgs e)
    {

        string str = inputTextBox.Text;
        char value = PhoneCharToNumber(value);
        resultsLabel.Text = value;

    }

    private void ExitButton_Click(object sender, EventArgs e)
    {
        //  Closes the form
        this.Close();
    }
}

在 CheckButton_Click 方法中,您将值作为参数传递。 那个时候值是未定义的,你应该像这样传递 str (这是一个坏名字)。 除了 PhoneCharToNumber 返回一个字符串而不是一个字符:

private void CheckButton_Click(object sender, EventArgs e)
{

    string textToProcess = inputTextBox.Text;
    string processedText = PhoneToNumber(textToCheck );
    resultsLabel.Text = processedText ;

}

错误在这里: char value = PhoneCharToNumber(value);
其中PhoneCharToNumber value参数尚未声明或分配。

我想你想使用 string value = PhoneToNumber(str); 反而。 事实上,您的用户在inputTextBox输入数字; 您必须将该文本转换为有效数字,然后将结果放入resultsLabel

private void CheckButton_Click(object sender, EventArgs e)
{
    string str = inputTextBox.Text;
    string value = PhoneToNumber(str);
    resultsLabel.Text = value;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM