C# 在.NET中创建简单随机数
我需要一个简单的随机数来创建一个循环,但我一辈子都搞不清楚我做错了什么。有人能看看下面的代码并向我解释为什么它会给我以下错误: 错误1“System.Random.Next(int, int)“”具有一些无效参数 错误2参数1:无法转换 从“十进制”到“整数”C# 在.NET中创建简单随机数,c#,random,C#,Random,我需要一个简单的随机数来创建一个循环,但我一辈子都搞不清楚我做错了什么。有人能看看下面的代码并向我解释为什么它会给我以下错误: 错误1“System.Random.Next(int, int)“”具有一些无效参数 错误2参数1:无法转换 从“十进制”到“整数” 错误3参数2:无法从转换 “十进制”到“整数” 我试图从数字上/下控件中提取范围的最小值和最大值。我假设LINQ或C#会有一个简单的单线生成器,但我找不到它 Random rnd1 = new Random(); var integer
错误3参数2:无法从转换 “十进制”到“整数” 我试图从数字上/下控件中提取范围的最小值和最大值。我假设LINQ或C#会有一个简单的单线生成器,但我找不到它
Random rnd1 = new Random();
var integer = rnd1.Next(numericUpDown_RandomMin.Value,
numericUpDown_RandomMax.Value);
textbox.Text = integer.ToString();
首先,
numericUpDown\u RandomMin.Value
和..\u RandomMax.Value
不是int
,因此您可能需要强制转换:
var integer = rnd1.Next((int)numericUpDown_RandomMin.Value, (int)numericUpDown_RandomMax.Value);
除此之外,您还遇到了哪些错误?NumericUpDown是一个小数,您需要将其转换为整数
var integer = rnd1.Next((int)numericUpDown_RandomMin.Value, (int)numericUpDown_RandomMax.Value);
Random.Next
需要两个Int32
值,但NumericUpDown.Value
属性是一个decimal
。因为从decimal
到int
的转换会降低一些值精度,所以您必须明确地执行此操作:
rnd1.Next((int)numericUpDown_RandomMin.Value, (int)numericUpDown_RandomMax.Value);
Value返回一个十进制,而Next()接受一个整数。您可能希望首先将其转换为整数:
var integer = rnd1.Next((int)numericUpDown_RandomMin.Value, (int)numericUpDown_RandomMax.Value);
由于的返回类型为Decimal
,您需要显式地将numericUpDown\u RandomMin.Value
和numericUpDown\u RandomMax.Value
值转换为Int32
,因为其中包含两个参数Int32
。喜欢
Random rnd1 = new Random();
var integer = rnd1.Next((int)numericUpDown_RandomMin.Value, (int)numericUpDown_RandomMax.Value);
textbox.Text = integer.ToString();
什么语法错误?你确定
numericUpDown\u randommamin.Value
和numericUpDown\u RandomMax.Value
都是int
或Int32
类型吗?如果你的numericUpDown\u randommamin.Value
和numericUpDown\u RandomMax.Value
不是Int32
,我看不出任何问题在这里学习,所以整个投票否决是荒谬的。@Jeagr投票是基于问题的质量,这完全独立于代码的质量。这个问题突出的主要问题是,您没有包含足够的代码来实际重现问题。如果不知道什么是numericUpDown\u RandomMin.Value
和numericUpDown\u RandomMax.Value
,我们真的做不了多少,这显然是问题的根源所在。新手程序员可以问高质量的问题,而非常高级的程序员可以问质量很差的问题;投票主要基于问题的质量。谢谢,我知道这很简单!谢谢,我就知道这很简单!