C# 这个.NET代码是如何工作的?
是的。我今天过得不好。。为了证明这一点,我不明白这个(简单的)代码试图做什么 下面是答案,后面是代码C# 这个.NET代码是如何工作的?,c#,.net,nbuilder,C#,.net,Nbuilder,是的。我今天过得不好。。为了证明这一点,我不明白这个(简单的)代码试图做什么 下面是答案,后面是代码 GetRandom.Phrase(5) == null or et or ut or do or elit or amet.. (nothing over 4 characters) GetRandom.Phrase(4) == null or sit or sed or do .. (nothing
GetRandom.Phrase(5) == null or et or ut or do or elit or amet..
(nothing over 4 characters)
GetRandom.Phrase(4) == null or sit or sed or do ..
(nothing over 3 characters)
GetRandom.Phrase(3) == null or et or ut or do (nothing over 2 characters)
GetRandom.Phrase(2) == null
GetRandom.Phrase(1) == null
而代码
private static readonly string[] latinWords = { "lorem", "ipsum", "dolor",
"sit", "amet", "consectetur", "adipisicing", "elit", "sed", "do",
"eiusmod", "tempor", "incididunt", "ut", "labore", "et", "dolore",
"magna", "aliqua" };
public virtual string Phrase(int length)
{
var count = latinWords.Length;
var result = string.Empty;
var done = false;
while (!done)
{
var word = latinWords[Next(0, count - 1)];
if (result.Length + word.Length + 1 > length)
{
done = true;
}
else
{
result += word + " ";
}
}
return result.Trim();
}
我原以为该方法应该返回x个短语或至少指定长度的随机短语?代码返回的随机短语长度小于或等于指定长度(以字符为单位)。关键是这一行:
if (result.Length + word.Length + 1 > length)
这保证了结果的字符长度(包括新添加的单词)不会超过
length
的值,因此如果我输入了数字“50”。。它会一直添加词组,直到尝试添加超过50个词组,然后停止吗?我看不出随机性在哪里发挥作用。tho.@Pure.Krome,它会一直添加词组,直到下一个词会导致词组超过指定长度。此时,将返回单个短语。@griegs,它位于未提供的Next(int,int)
方法中。那么Next是一个多么贴切的命名方法啊。:)