在 C# 中如何正确地将 int 数组传递给函数
Posted
技术标签:
【中文标题】在 C# 中如何正确地将 int 数组传递给函数【英文标题】:In C# How to correctly pass an int array to a function 【发布时间】:2022-01-06 11:51:42 【问题描述】:如何将具有未知数量整数的数组传递给函数? 谁能告诉我我做错了什么?
尝试运行代码时出现以下错误:
错误 CS1501 方法“解决方案”没有重载需要 6 个参数
using System;
namespace IntegerTest
class Program
public static int Solution(int[] input)
Array.Sort(input);
int index = 0;
// Skip negatives
while (index < input.Length && input[index] < 1)
index++;
int expected = 1;
while (index < input.Length)
if (input[index] > expected)
return expected;
// Skip number and all duplicates
while (index < input.Length && input[index] == expected)
index++;
expected++;
return expected;
public static void Main()
Console.WriteLine(Solution( 1, 3, 6, 4, 1, 2));
【问题讨论】:
docs.microsoft.com/en-us/dotnet/csharp/programming-guide/arrays 您需要在数组前加上params
关键字才能接受可变参数样式输入;否则,传入一个 int 数组,你现在只是传入一堆独立的 int
【参考方案1】:
您可以使用数组参数调用函数(例如Solution(new[] 1, 3, 6, 4, 1, 2)
,或修改函数签名以采用params
参数(int Solution(params int[] input)
)。
【讨论】:
【参考方案2】:你的方法接受int[]
,所以创建一个new int[]
Solution(new int[] 1, 3, 6, 4, 1, 2);
【讨论】:
【参考方案3】:您将 6 个参数传递给一个接受一个的方法。将您的主要方法更改为以下内容:
public static void Main()
int[] arr = 1, 3, 6, 4, 1, 2;
Console.WriteLine(Solution(arr));
【讨论】:
以上是关于在 C# 中如何正确地将 int 数组传递给函数的主要内容,如果未能解决你的问题,请参考以下文章
如何正确地将这些转换为 c#,marshall,以便我可以将这些结构传递给 DLL (c++)?