C#随机字符串代码

privatestringGetCode(){intnumber;charcode;stringcheckCode=String.Empty;Randomrandom=n... private string GetCode()
{
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();
}
return checkCode;
}
其中
code = (char)('0' + (char)(number % 10));
是什么意思啊?我知道是生成数字,但我不明白原理~~~
展开
 我来答
LK_soso
推荐于2016-10-15 · TA获得超过278个赞
知道小有建树答主
回答量:351
采纳率:0%
帮助的人:191万
展开全部
code = (char)('0' + (char)(number % 10));
0的ASC码0x30加上强制转换数字(number % 10)为ASC码,然后再转换为char字符型。
例如:number=12
那么code=(char)(0x30+(char)2))=(char)(0x32)='2'
(char)2,就是强制转换2为ASC码
(char)0x32就是ASC码中的16进制32,就是字符型'2'
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
JimiXu
2009-10-21 · TA获得超过410个赞
知道小有建树答主
回答量:1010
采纳率:0%
帮助的人:0
展开全部
这个函数是用来生产4位随即验证码的:
number = random.Next();
if (number % 2 == 0) //随机数是偶数,就生产个偶数字符
code = (char)('0' + (char)(number % 10));
else //随机数是奇数,就生成字母字符
code = (char)('A' + (char)(number % 26));
checkCode += code.ToString(); //然后把生产的字符加到字符串里面

最后返回个4个字符长度的字符串。

(char)('0' + (char)(number % 10)); number是数字,加上'0'就得到一个unicode,因为字符里面的'0','1','2'...等等在编码的时候都是连续的。
懂了?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rightmin
2009-10-21 · TA获得超过4124个赞
知道大有可为答主
回答量:2199
采纳率:0%
帮助的人:1806万
展开全部
这种方法好麻烦哦。

道理很简单呀,如果是偶数
就是if (number % 2 == 0)成立执行
code = (char)('0' + (char)(number % 10));这句
number % 10的结果肯定是0-9的
如果是奇数就执行code = (char)('A' + (char)(number % 26));
number % 26的结果肯定是0-25的,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liujw1220
2009-10-21 · TA获得超过282个赞
知道小有建树答主
回答量:299
采纳率:0%
帮助的人:103万
展开全部
number % 10 是Int类型 ;

(char)(number % 10)这样搞一下它就变成了char类型unicode字符串;

'0' + (char)(number % 10)这是两个unicode字符串连起来返回一个
char类型的code

即 code = (char)('0' + (char)(number % 10));
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式