c# - 如何使方法接收两种不同的数据类型并仅返回其中一种 C#?

标签 c# arrays

我这周开始自学 C#,我可能无法理解一些概念,对于理解我的任何困难,我深表歉意。 我想创建一个接收 int[] 和 int,但只返回 int[] 的方法。 我收到了两个错误。

对于主要方法:

无法将类型“int[]”隐式转换为“int”

    static void Main(string[] args)
    {
        int[] Num = new int[5];
        int i;
        for (i = 0; i < 5; i++)
            Num[i] = NumGen(Num, i);
    }

创建方法:

无法将类型“int”隐式转换为“int[]”

  static int[] NumGen(int[] Num, int i)
    {
        Random rndm = new Random();
        Num[i] = rndm.Next(100) + 1;
        return Num[i];

     }

我想了解我做错了什么以及将来如何避免这种错误。 提前感谢您的回答!

编辑: 谢谢大家,您的建议解决了问题。 :)

最佳答案

只是 NumGen 的返回类型 - 应该是 int:

static int NumGen(int[] Num, int i)
{
    Random rndm = new Random();
    Num[i] = rndm.Next(100) + 1;
    return Num[i];
}

但是:您的代码有一个严重的错误。 new Random() 这样每次都会产生相同的值,因为它是通过时钟播种的。更好的方法是:

static int NumGen(Random rndm, int[] Num, int i)
{
    Num[i] = rndm.Next(100) + 1;
    return Num[i];
}
static void Main(string[] args)
{
    int[] Num = new int[5];
    Random rand = new Random();
    for (int i = 0; i < 5; i++)
        Num[i] = NumGen(rand, Num, i);
}

或者更简洁:

static int Randomize(Random rndm)
{
    return rndm.Next(100) + 1;
}
static void Main(string[] args)
{
    int[] Num = new int[5];
    Random rand = new Random();
    for (int i = 0; i < 5; i++) Num[i] = Randomize(rand);
}

关于c# - 如何使方法接收两种不同的数据类型并仅返回其中一种 C#?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19955326/

相关文章:

c# - 以编程方式更改 Windows 中的打印机首选项

c# - 下拉列表数据源并从 C# 添加额外项目

java - 我的项目使用 SharedPreferences 保存 ArrayList<T> 时出现问题

c++ - 函数中的动态二维数组分配并将其返回给主函数?

c# - 在自定义对象的 List<> 上使用 ToArray()

c# - 如何将字符串添加到资源?

c# - 谁负责检查空引用异常?

c# - Linq 结果以不同的顺序显示

c++ - VS2010代码分析奇怪的数组限制报错

php - 在 apns.php 中获取失败的设备 token