无法将int类型隐式转换为int数组

时间:2017-03-13 17:20:41

标签: c# arrays methods compiler-errors int

我有简单的方法。我无法弄清楚它为什么会抛出错误。提前谢谢!

 public static int[] Shift(int[] a) 
 {    
       if (a == null) return -1;
       ...
 }

编译器抛出以下错误:

  

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

3 个答案:

答案 0 :(得分:9)

如果您的数组为null,则返回int。该函数期望int []。您可以返回null或空白数组。

答案 1 :(得分:5)

您正在尝试返回和int但是您的方法需要一组int。 在这种情况下你想要回报什么?

你可以返回一个空数组

return new int[]{};

或包含-1

的数组
return new int[]{-1};

答案 2 :(得分:1)

 public static int[] Shift(int[] a) 
 {    
       if (a == null) return null;
       ...
 }

 public static int[] Shift(int[] a) 
 {    
       if (a == null) return new int[]{};
       ...
 }

因为您的static方法被定义为具有int[]返回类型,所以返回类型必须是int数组,而不是int。与任何对象一样,这可以是null但是根据您的用法,空数组可能更好,以避免调用者处的空引用异常。