C#生成1-6随机数时输出System.Func`1[System.Int32]的问题求助
问题解决方法
核心问题及修正步骤:
- **输出
System.Func1[System.Int32]的原因**:你调用方法时写的是GetDice,这是在引用方法本身而非执行它。必须加上括号GetDice()`才能执行方法并获取返回值,所以Main方法里要改成:Console.WriteLine(GetDice()); - 随机数范围不符合需求:当前代码生成的是1-99的随机数(
Next(1,100)是左闭右开区间),要生成1-6的数,需将参数改为Next(1,7)。 - 重复创建Random实例的隐患:类里已经定义了静态
random字段,方法内部又重新创建了新的Random实例。短时间内重复创建Random会因系统时钟种子相同,导致生成重复的随机数,应该复用类的静态实例。
修正后的完整代码:
namespace ConsoleApp9 { internal class Program { static Random random = new Random(); static void Main(string[] args) { Console.WriteLine(GetDice()); } public static int GetDice() { int dice = random.Next(1, 7); return dice; } } }
内容的提问来源于stack exchange,提问作者aboov
相关产品推荐
相关产品推荐

