You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 00:20:24