Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 这个.NET代码是如何工作的?_C#_.net_Nbuilder - Fatal编程技术网

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是一个多么贴切的命名方法啊。:)