将2个参数发送回Main功能

时间:2012-07-31 09:55:22

标签: c# parameters .net-2.0

我有一个函数想要将2个INT参数发送回调用它的位置,但不确定哪个是最佳选项,Dictionary?或ListArray

EDITED

我正在使用.Net framework 2

7 个答案:

答案 0 :(得分:6)

我假设你的意思是给调用者返回2个值。如果是这样的话:

这取决于呼叫者最容易理解的内容,即最能说明您意图的内容?

如果结果始终有两个值,则返回可变大小的集合可能不直观。我的偏好是元组或自定义类型。元组具有现有类型的优点,但缺点是它的成员意味着什么;它们只被称为“Item1”,“Item2”,依此类推。

out关键字对于可能无法成功且始终返回bool的操作很有用,例如public bool int.TryParse( string value, out int parsedValue )。意图很明确。

答案 1 :(得分:2)

尝试使用此代码

type1 param1;
type2 param2;
void Send(out type1 param1, out type2 param2)

or

type1 param1 = ..;//You must initialize with ref
type2 param2 = ..;
void Send(ref type1 param1, ref type2 param2)

答案 2 :(得分:2)

您可以尝试使用参数msdn

答案 3 :(得分:2)

如果你只使用两个整数,那么我会使用一个2元组,一个Tuple<int, int>

您可以在构造函数中使用其两个值初始化它:

return new Tuple<int,int>(val1, val2);

或者对于可变数量的输出,List<int>(或者可能只是IEnumerable<int>,具体取决于预期用途。)

答案 4 :(得分:2)

我想我需要通过引用返回它,就像这样......

private void ReturnByRef(ref int i1, ref int i2) {

}

答案 5 :(得分:1)

嗯,这取决于你,你有多种方法可以做到这一点。 如果它只是你要传回的两个参数,那么你可以只使用“out”参数:

class A
{
  private static void foo(int param, out int res1, out int res2)
  {
    res1 = 1*param;
    res2 = 2*param;
  }

  public static void main(string[] args)
  {
    int res1, res2;
    foo(1, out res1, out res2);
    // Do something with your results ...
  }

答案 6 :(得分:1)

out参数效果最佳

static void Main()
{
   int a;
   int b;
   someFunction(out a,out b); //the int values will be returned in a and b
   Console.WriteLine(a);
   Console.WriteLine(b);
}
public static void someFunction(out int x,out int y)
{
   x=10;
   y=20;
 }

您的输入将是

10
20