Random+StringBuilder的问题,这只好怀疑是dotnet1.1的bug了

LevinForum 2003-10-21 11:16:47
写了个随机字符传的程序
这个是后来改的。测试正常
static public string GetRandomString(int len,string chars)
{
if(len<0)
throw(new ArgumentOutOfRangeException("len",len,"len must >= 0"));
if(chars==null)
throw(new ArgumentNullException("chars"));
//可用字符的长度
int clen=chars.Length;
if(clen==0)
throw(new ArgumentException("chars.Length==0"));
char[] cs=new char[clen];
Random r=_CreateRandom();
for(int i=0;i<len;i++)
cs[i]=chars[r.Next(clen)];
return new string(cs);
}

这个调用GetRandomString(3,"abcdefghijklmnopqrstuvwxyz")
竟然有时候返回"4公元a"

static public string GetRandomString(int len,string chars)
{
if(len<0)
throw(new ArgumentOutOfRangeException("len",len,"len must >= 0"));
if(chars==null)
throw(new ArgumentNullException("chars"));
//可用字符的长度
int clen=chars.Length;
if(clen==0)
throw(new ArgumentException("chars.Length==0"));
StringBuilder sb=new StringBuilder();
Random r=_CreateRandom();
for(int i=0;i<len;i++)
sb.Append(chars[r.Next(clen)]);
return sb.ToString();
}

其中
static private Random _CreateRandom()
{
return new Random(Guid.NewGuid().ToString().GetHashCode());
}


这是什么问题?
...全文
40 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
LevinForum 2003-10-21
  • 打赏
  • 举报
回复
5555
LevinForum 2003-10-21
  • 打赏
  • 举报
回复
y

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧