c# - for循环内部的逻辑解释
问题描述
我是 C# 的新手。我看过随机密码生成器的代码。我需要帮助来理解 for 循环函数内部的逻辑,以进一步了解它是如何工作的:
{
stringChars[i] = chars[random.Next(chars.Length)];
}
下面是完整的代码
public static string RandomString(int length)
{
const string chars =
"abcdefghijklmnopqrstuvwxyz" +
"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +
"0123456789" +
"@!#*&_";
var stringChars = new char[8];
var random = new Random();
for (int i = 0; i < stringChars.Length; i++)
{
stringChars[i] = chars[random.Next(chars.Length)];
}
return new string (stringChars);
解决方案
让我们stringChars[i] = chars[random.Next(chars.Length)];
下来
chars
是一种String
类型- chars[...] 是在某个索引的字符串数组中获取一个项目,即
chars[0]
会给你 char 'a' random.Next(X)
就是得到一个介于0和括号内的数字之间的随机数chars.Length
将为您提供字符字符串的长度,即字符串中字符的数量- 从 [4] 和 [3]
random.Next(chars.Length)
你会得到一个介于 0 和你的字符串长度之间的随机数 - 从 [5] 和 [2] 你会得到你的字符串中的随机字符
意思是在该行中,您将为字符串中stringChars
的随机字符插入每个位置 chars
提示 尝试始终将您不理解的行分成较小的部分,然后分别分析它们,然后将它们加在一起
推荐阅读
- ios - 在 iOS 上通过 Spotify App Remote 的 SPTSession 进行身份验证时获取一个奇怪的刷新令牌
- elasticsearch - Elasticsearch / Kibana - 如何通过特定标识符获取日志的时间点快照
- css - 即使在正文中设置了绝对大小,移动 Firefox 上的字体大小与移动 Chrome 不同
- react-native - 如何在 React Native 中获取设备令牌?
- git - Android-studio 更改列表功能如何在 git 的幕后工作
- c# - 我可以使用 C# SemaphoreSlim 来触发某些东西吗
- oracle-apex - 从不同帐户在 Oracle Apex 上发送电子邮件
- python - 远程机器上的 Bottle 服务器
- python - 尝试重命名数据框中的列时,Split 在每一行上按预期执行时在一行上产生 IndexError
- nstoolbar - 使用 Xcode 12 创建工具栏按钮的正确方法是什么