小编Cod*_*ang的帖子

我的静态C#功能正在和我一起玩游戏......总觉得很奇怪!

所以,我写了一个小的,从我最初的想法,在C#中简单的方法.此静态方法旨在用作简单的密码建议生成器,代码如下所示:

public static string CreateRandomPassword(int outputLength, string source = "")
{
  var output = string.Empty;

  for (var i = 0; i < outputLength; i++)
  {
     var randomObj = new Random();
     output += source.Substring(randomObj.Next(source.Length), 1);
  }

  return output;
}
Run Code Online (Sandbox Code Playgroud)

我这样调用这个函数:

var randomPassword = StringHelper.CreateRandomPassword(5, "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890");
Run Code Online (Sandbox Code Playgroud)

现在,这个方法几乎总是返回像"AAAAAA","BBBBBB","888888"等随机字符串,我认为它应该返回像"A8JK2A","82mOK7"等字符串.

然而,这里是奇怪的部分; 如果我放置一个断点,并逐行逐步执行此迭代,我会得到正确类型的密码作为回报.在100%的其他情况下,当我没有调试时,它给了我像"AAAAAA","666666"等废话.

这怎么可能?任何建议都非常感谢!:-)

BTW,我的系统:Visual Studio 2010,C#4.0,ASP.NET MVC 3 RTM项目,带ASP.NET开发服务器.尚未在任何其他环境中测试此代码.

c# debugging asp.net-mvc-3

6
推荐指数
1
解决办法
563
查看次数

标签 统计

asp.net-mvc-3 ×1

c# ×1

debugging ×1