无法弄清楚为什么我在标志上收到错误。任何帮助将不胜感激! 目标是使用以下指定的字符生成40个字符。
public static string udidGen() {
bool flag;
string s1 = "";
string[] sArr2 = new string[] {
"0",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"a",
"b",
"c",
"d",
"e",
"f" };
string[] sArr1 = sArr2;
Random random = new Random();
int i = 0;
while (**flag**)
{
s1 += sArr1[random.Next(0, 15)];
i++;
flag = i < 40;
}
return s1;
}
答案 0 :(得分:2)
您正在使用标记而不为其赋值。将第一行更改为:
bool flag = true;
更好的是,完全摆脱'flag'并用for循环替换while循环
for(int i = 0; i&lt; 40; i ++) { ... }
答案 1 :(得分:0)
while
第一次执行,flag
从未被设置为任何东西 - 感谢编译器/运行时指出你本来可以证明是非常困难的抓到虫子!
你应该在循环之前将变量初始化为true
,理想情况是在声明本身中:
bool flag = true;
答案 2 :(得分:0)
flag
变量尚未初始化,C#编译器不允许这样做。在这种情况下,你想让它成为真,所以你至少进入一次循环。
bool flag = true;