c# 生成随机字符串的问题
在书上看到这样一段代码privatestringGenerateCheckCode(){intnumber;charcode;stringcheckCode=String...
在书上看到这样一段代码
private string GenerateCheckCode()
{
int number;
char code;
string checkCode = String.Empty;
Random random = new Random();
for (int i = 0; i < 4; i++)
{
number = random.Next();
if (number % 2 == 0)
code = (char)('0' + (char)(number % 10));
else
code = (char)('A' + (char)(number % 26));
checkCode += code.ToString();
}
Response.Cookies.Add(new HttpCookie("CheckCode", checkCode));
return checkCode;
}
其中的
if (number % 2 == 0)
code = (char)('0' + (char)(number % 10));
else
code = (char)('A' + (char)(number % 26));
是什么意思啊
就是随机生成4位数字和字母混合的验证码 但不明白上面的2句是什么意思 展开
private string GenerateCheckCode()
{
int number;
char code;
string checkCode = String.Empty;
Random random = new Random();
for (int i = 0; i < 4; i++)
{
number = random.Next();
if (number % 2 == 0)
code = (char)('0' + (char)(number % 10));
else
code = (char)('A' + (char)(number % 26));
checkCode += code.ToString();
}
Response.Cookies.Add(new HttpCookie("CheckCode", checkCode));
return checkCode;
}
其中的
if (number % 2 == 0)
code = (char)('0' + (char)(number % 10));
else
code = (char)('A' + (char)(number % 26));
是什么意思啊
就是随机生成4位数字和字母混合的验证码 但不明白上面的2句是什么意思 展开
3个回答
展开全部
%是求余,Random.next生成一个0到int32.maxvalue的值
因此number % 10的结果在0-9之间,加上0的ascii值就是0-9间的数字,% 26在0-25之间,加上A就是A-Z间的字母
if (number % 2 == 0) //如果number除以2的余数是0,即偶数
code = (char)('0' + (char)(number % 10)); //生成一个数字
else //否则
code = (char)('A' + (char)(number % 26)); //生成一个字母
因此number % 10的结果在0-9之间,加上0的ascii值就是0-9间的数字,% 26在0-25之间,加上A就是A-Z间的字母
if (number % 2 == 0) //如果number除以2的余数是0,即偶数
code = (char)('0' + (char)(number % 10)); //生成一个数字
else //否则
code = (char)('A' + (char)(number % 26)); //生成一个字母
展开全部
if (number % 2 == 0)
code = (char)('0' + (char)(number % 10));
//输出0 - 9的数字字符,0的ascii码值加1-9 定位0-9的值,
再转换成字符输出。
else
code = (char)('A' + (char)(number % 26));
//输出A-Z的大写字母字符,通过'A'的ascii码值加0-26来定位A-Z的值,
再转换成字符输出
code = (char)('0' + (char)(number % 10));
//输出0 - 9的数字字符,0的ascii码值加1-9 定位0-9的值,
再转换成字符输出。
else
code = (char)('A' + (char)(number % 26));
//输出A-Z的大写字母字符,通过'A'的ascii码值加0-26来定位A-Z的值,
再转换成字符输出
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我也看不懂啊
好像跟“阿斯克码”有关系
好像跟“阿斯克码”有关系
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询