这个 VB6 Rnd() 调用的 C# 等效项是什么?
本文关键字:是什么 Rnd VB6 调用 这个 | 更新日期: 2023-09-27 18:33:54
我在将VB
代码Int(Rnd() * 75) + 75)
将其提供给C#时遇到了问题。我试过了
Random random = new Random
random.Next( 75 ) + 75
但这是不对的。请帮助我。
谢谢
假设这意味着给出一个介于 75(含)和 150(不含)之间的值,我会使用
Random random = new Random();
int value = random.Next(75, 150);
这比首先生成 [0, 75) 范围内的数字然后添加 75 IMO 更清楚。
但请注意,您不应该在每次需要随机数时都创建一个新的Random
实例。您可能希望每个线程一个实例。我有一篇相当长的文章解释了生成随机数的各种陷阱,以及一些解决方法。
查看 VB 中的代码正在执行
- 生成一个随机数。
- 将其乘以 75 并将其转换为 int。
- 然后在其中添加 75。
在 C# 中,它就像
Random random = new Random();
int v = random.Next() * 75 + 75;
无需转换,因为random.Next()
给出一个整数。此外,您可以通过提供最小值和最大值黑白来限制随机数的生成,如下所示:
random.Next(50, 100);
其中它只会找到随机数 b/w 50 和 100。
我是这样想的
Random random = new Random();
int rdnum = (random.Next() + 1) * 75;
编辑
最后,如果我需要他的随机,我会使用它(0-20 表示较小的数字)
int rdnum = ((new Random()).Next(0, 20) + 1) * 75;
编辑2
在迪安娜的评论之后,代码将是
Random random = new Random();
Double rdnum = (random.NextDouble() * 75) + 75;
请记住,如果您想要确切的 Rnd 函数,您可以按照以下步骤操作:
1.In 解决方案资源管理器中,右键单击引用,然后单击"添加引用..."
2.In"程序集"-">框架"中,选中"Microsoft.VisualBasic"复选框
现在你可以像这样使用它:
Microsoft.VisualBasic.VBMath.Rnd();
Microsoft.VisualBasic.VBMath.Randomize();
请注意,Random Rnd = new Random();
应该搬出...在某些情况下循环:
Random Rnd = new Random();
float fRnd = (float)Rnd.NextDouble() * 75f + 75f;