簡體   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