C#的语法 无法类型int转换为char

来源:百度知道 编辑:UC知道 时间:2024/05/31 04:30:02
//获取一个随机码
string strCode = "";
int number = 0;
char code = '\0';
System.Random random = new Random();
int code_i = 0;
for (code_i = 0; code_i <= 5; code_i++)
{
number = random.Next();
code = (char)number + Convert.ToChar(number % 10);
strCode += code.ToString();
}

不知道你想作什么
(char)number + Convert.ToChar(number % 10);这种东西结果就是int类型

所以你把一个int类型转给char的code就会出错!

你的random出的来很大,使用种子限制一下

因为int不能隐式转换为char类型的,但是也不能把char改成 (char)number改成Convert.ToChar,你想想,char是单个字符类型,两个char类型相加还能是char类型吗。
我有个笨办法。。呵呵。如果你不见意,可以用一下
string strCode = "";
int number = 0;
char code = '\0';
System.Random random = new Random();
int code_i = 0;
for (code_i = 0; code_i <= 5; code_i++)
{
number = random.Next();
code = Convert.ToChar((Char)number + Convert.ToChar(number % 10));
strCode += code.ToString();

不太懂你这代码是干嘛的?
至于你所说的错误是 code = (char)number + Convert.ToChar(number % 10);
这句代码相加的时候(char)number 和 Convert.ToChar(number % 10) 会隐式转换为int型的在相加,也就是说char类型的变量不能相加,相加时都会隐式转换为int,当然相加的结果自然就是int型的了,但是你又将结