如何在C#中返回数组文字

sga*_*arg 73 c#

我正在尝试以下代码.指出了带错误的行.

int[] myfunction()
{
    {
      //regular code
    }
    catch (Exception ex)
    {                    
       return {0,0,0}; //gives error
    }
}
Run Code Online (Sandbox Code Playgroud)

如何返回像字符串文字一样的数组文字?

Blo*_*ard 143

返回一个这样的数组int:

return new int [] { 0, 0, 0 };
Run Code Online (Sandbox Code Playgroud)

您也可以隐式输入数组 - 编译器会推断它应该是int[]因为它只包含int值:

return new [] { 0, 0, 0 };
Run Code Online (Sandbox Code Playgroud)

  • 哇哇,我不知道你可以隐式输入数组!+1 (5认同)
  • @sgarg这似乎与答案相同.我不同意,数组的隐式类型意味着将常量更改为浮点会自动获得正确的数组类型. (3认同)
  • 我发现`new int [] {0,0,0}`也有效。我认为这会更清楚。 (2认同)
  • 对于初学者来说,答案应该包括一个重要的精确性:事实上,这“不是”字面意思。每当调用此方法时,都会创建并分配一个新的数组实例。 (2认同)

jb.*_*jb. 12

Blorgbeard是正确的,但您也可以考虑使用新的.NET 4.0 Tuple类.我发现当你有一定数量的物品要返回时,它更容易使用.如果你总是需要在数组中返回3个项目,那么一个3-int元组会清楚它是什么.

return new Tuple<int,int,int>(0,0,0);
Run Code Online (Sandbox Code Playgroud)

或者干脆

return Tuple.Create(0,0,0);
Run Code Online (Sandbox Code Playgroud)

  • 如果你有一个可变数量的项目,但想要一些额外的功能,你也可以这样做:`return new List <int>(new int [] {0,0,0});` (2认同)

ano*_*ari 9

如果数组有一个固定的大小,你想回来一个填充零的新数组

return new int[3];
Run Code Online (Sandbox Code Playgroud)