C# (Random.NextDouble()<;1)有什么用处

C# (Random.NextDouble()<;1)有什么用处,c#,.net,random,mocking,C#,.net,Random,Mocking,我在几个应用程序中看到,我支持以下句子: Random rnd = new Random(); if (rnd.NextDouble() < 1) { ' Do stuff } Random rnd=new Random(); if(rnd.NextDouble()

我在几个应用程序中看到,我支持以下句子:

Random rnd = new Random();
if (rnd.NextDouble() < 1)
{
    ' Do stuff
}
Random rnd=new Random();
if(rnd.NextDouble()<1)
{
“做事
}
这样做的目的是什么?rnd将始终返回一个小于1的值。我能想到的唯一一件事是,如果您模拟随机,那么您将能够停用代码的某些部分

你觉得怎么样?你找到这样的东西了吗


编辑:问题是这些句子位于不同但相关的代码部分,并且总是覆盖整个功能。这就是为什么我倾向于认为这是故意编码的。代码似乎有一定的质量,如果这是一个错误,我会对所有其他代码感到惊讶。

我不确定,但不需要检查
rnd.NextDouble
将始终在范围内返回 从0.0到1.0

大于或等于0.0的双精度浮点数, 并且小于1.0


我不确定,但这张支票不是必需的
rnd.NextDouble
将始终在范围内返回 从0.0到1.0

大于或等于0.0的双精度浮点数, 并且小于1.0


假设所讨论的
随机
确实是,我看不出有任何功能上的原因


我所能推测的是,也许作者想要一个代码块,他们可以很容易地(在调试/开发时)有条件地运行(通过将
1
更改为
0
),或者只在一段时间内运行(通过将
1
更改为
0
1
之间的某个值)。但事实上,这不是一个众所周知的习惯用法,所以你必须询问编写它的人,因此我投票认为它过于本地化。

假设所讨论的
随机
确实是,我看不出有任何功能上的原因


我所能推测的是,也许作者想要一个代码块,他们可以很容易地(在调试/开发时)有条件地运行(通过将
1
更改为
0
),或者只在一段时间内运行(通过将
1
更改为
0
1
之间的某个值)。但实际上,这不是一个广为人知的成语,所以你必须问它的作者,因此我投票认为它太本地化了。

如果我可以问一下,你问这个问题是出于好奇,还是想恳求?如果是这样,你有什么想法?或者有人从未阅读过
NextDouble()
的文档?这似乎是多余的代码,可能是他们最初使用的不是1的值测试应用程序,而出于懒惰,代码仍保留在最终版本中?不幸的是,我在过去见过这种情况。不管怎么说,在没有评论的情况下使用它看起来非常可疑。问问写它的人。(模仿Random以返回大于1的内容似乎也会破坏内容。)如果在Visual Studio中只需突出显示方法名称并按Shift+F12-查找所有引用。如果我可以问,您的提问是出于好奇,还是希望实现它?如果是这样,你有什么想法?或者有人从未阅读过
NextDouble()
的文档?这似乎是多余的代码,可能是他们最初使用的不是1的值测试应用程序,而出于懒惰,代码仍保留在最终版本中?不幸的是,我在过去见过这种情况。不管怎么说,在没有评论的情况下使用它看起来非常可疑。问问写它的人。(模仿Random以返回大于1的内容似乎也会破坏内容。)如果在Visual Studio中只需突出显示方法名称并按Shift+F12-查找所有引用。我知道这一点,我想说编写此代码的人也知道这一点。我能想到的唯一目的是,如果嘲弄的使用,但看起来很奇怪。我知道这一点,我要说的是,编写这一代码的人也知道这一点。我能想到的唯一目的是,如果嘲弄的使用,但无论如何看起来都很奇怪。我真的认为,这是过于专注于结束事情。这是一个真正的问题,可以有一个真正的答案,所以我认为它不应该被关闭。即使检查是错误的,如果将来有人发现同样的错误,他也会知道这根本没有目的,所以保持这个问题对我来说是有意义的。老实说,我认为这是太过专注于结束事情了。这是一个真正的问题,可以有一个真正的答案,所以我认为它不应该被关闭。即使检查是错误的,如果将来有人发现同样的错误,他也会知道这根本没有目的,所以保持这个问题对我来说是有意义的。