C#case语句错误无法将字符串隐式转换为字符

C#case语句错误无法将字符串隐式转换为字符,c#,char,switch-statement,console-application,C#,Char,Switch Statement,Console Application,好的,所以我正在做的作业应该是只取7个字符的字母和数字,没有符号,然后把它们转换成7位数的电话号码。我的作业说我需要使用switch语句,每个数字都有一个case语句。我只是想让它至少在第一个角色上起作用,然后再继续其他角色。转换基于标准手机键盘。A、 B或C是2,D,E,F是3,依此类推。这是我第一次使用case语句,所以我甚至不确定我是否做对了。我收到的错误是“无法将类型字符串隐式转换为字符”。我的问题是我做的这个案子陈述对吗?如果是这样的话,我该如何正确地编译它,如果不是这样的话,我该如何

好的,所以我正在做的作业应该是只取7个字符的字母和数字,没有符号,然后把它们转换成7位数的电话号码。我的作业说我需要使用switch语句,每个数字都有一个case语句。我只是想让它至少在第一个角色上起作用,然后再继续其他角色。转换基于标准手机键盘。A、 B或C是2,D,E,F是3,依此类推。这是我第一次使用case语句,所以我甚至不确定我是否做对了。我收到的错误是“无法将类型字符串隐式转换为字符”。我的问题是我做的这个案子陈述对吗?如果是这样的话,我该如何正确地编译它,如果不是这样的话,我该如何使当某人输入A、B或C时,它会转换为“2”

}在C#中,“A”表示一个字母
字符串
。要获取字符,请使用
'
'A'

您的
开关
案例应为:

switch(char1)
{
    case 'A':
    case 'a':
    case 'B':
    case 'b':
    case 'C':
    case 'c':
    case '2': Console.WriteLine("test");
        break;
    default: Console.WriteLine("this test did not work :(");
        break;
}
在C#中,
“A”
表示一个字母
字符串
。要获取字符,请使用
'
'A'

您的
开关
案例应为:

switch(char1)
{
    case 'A':
    case 'a':
    case 'B':
    case 'b':
    case 'C':
    case 'c':
    case '2': Console.WriteLine("test");
        break;
    default: Console.WriteLine("this test did not work :(");
        break;
}

即使我对char使用“”标记来迭代switch语句,它也不起作用。我不知道为什么,但我解决了这个问题,在case之后声明char,并使用“when”助手检查char均衡,结果成功了。示例代码是这样的,希望这对其他人有所帮助

for (int i = 0; i < tempCharArray.Length; i++) 
        {
            switch (tempCharArray[i])
            {
                // Point
                case char _point when _point == '.':
                    Debug.Log("Point is detected");
                    break;

                // Numbers
                case char _one when _one == '1':
                    Debug.Log("1 is detected");
                    break;

                case char _two when _two == '2':
                    Debug.Log("Point detected");
                    break;
                /* so on..*/

                default:
                
                break;


            }
        }
for(int i=0;i
即使我对char使用“”标记来迭代switch语句,它也不起作用。我不知道为什么,但我解决了这个问题,在case之后声明char,并使用“when”助手检查char均衡,结果成功了。示例代码是这样的,希望这对其他人有所帮助

for (int i = 0; i < tempCharArray.Length; i++) 
        {
            switch (tempCharArray[i])
            {
                // Point
                case char _point when _point == '.':
                    Debug.Log("Point is detected");
                    break;

                // Numbers
                case char _one when _one == '1':
                    Debug.Log("1 is detected");
                    break;

                case char _two when _two == '2':
                    Debug.Log("Point detected");
                    break;
                /* so on..*/

                default:
                
                break;


            }
        }
for(int i=0;i
Dang!它总是这么简单:p谢谢!该死!它总是这么简单:p谢谢!由于您在回答一个六年前的问题时需要提到您的解决方案在测试时适用的版本号。EoR。由于您回答了一个六年前的问题,您需要提到您的解决方案在测试时适用的版本号。提高采收率。