我是C#编码的新手。我正在创建一个用于C#学习和娱乐的Asp + C#网站。我遇到了一个奇怪的错误。
我在做什么。 从文本框获取用户名,将名称转换为char arrary,然后根据switch语句中描述的值尝试加入添加数组。
但是,它在我的所有switch语句中显示红色波浪线,显示我,当前上下文中不存在名称。
任何线索,如何解决?
name = TextBoxName.Text.ToString();
var number = 0;
char[] arr = name.ToCharArray();
foreach (var nameChar in arr)
{
switch (nameChar)
{
case A:
number += 1;
case B:
number += 2;
case C:
number += 3;
case D:
number += 4;
case E:
number += 5;
case F:
number += 5;
case G:
number += 7;
case H:
number += 8;
case I:
number += 9;
case J:
number += 10;
case K:
number += 11;
case L:
number += 12;
case M:
number += 13;
case N:
number += 14;
case O:
number += 15;
case P:
number += 16;
case Q:
number += 17;
case R:
number += 18;
case S:
number += 19;
case T:
number += 20;
case U:
number += 21;
case V:
number += 22;
case W:
number += 23;
case X:
number += 24;
case Y:
number += 25;
case Z:
number += 26;
default:
}
};
答案 0 :(得分:4)
其他人已指出您的错误,但请不要使用这样的代码。尝试这样的事情:
const string letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char[] arr = name.ToUpper().ToCharArray();
foreach (var nameChar in arr)
{
number += letters.IndexOf(nameChar) + 1;
};
答案 1 :(得分:3)
对于Switch,您可以在此处查看msnd:switch (C# Reference)
你需要这样做,我的意思是说你错过了这里的引用
case 'A':
你也错过了破坏声明,所以它就像
case 'A':
number += 1;
break;
case 'B':
number += 2;
break;
答案 2 :(得分:3)
要在C#中使用字符,您需要使用撇号。并且为了将彼此之间的不同情况分开,您需要在每个案例结束时“休息”:
case 'A':
number += 1;
break;
答案 3 :(得分:0)
如果您使用字符串"A"
case "A":
number += 1;
break;
或只是
case 'A':
number += 1;
break;
答案 4 :(得分:0)
谢谢大家,感谢您提出的宝贵意见和建议。
它已经解决,问题是。
缺少break;
需要在A:''
'A'
在foreach循环中我提到了var nameChar
,我已经改变了它
到char namechar
并需要在.ToUpper
textbox.Text
当我们学习新东西时,会发生错误:)并感谢你们纠正错误。
答案 5 :(得分:-2)
您提供的潜在变量名称不是字符,因为值是预期的,所以tr'A'而不是A等
答案 6 :(得分:-2)
你应该使用'A'而不是A