如何从c#中的函数返回2个不同类型的变量

时间:2014-10-31 18:47:21

标签: c# visual-studio-2010 functional-programming

例如我有这两个函数,其中一个调用其他函数:

    private void show()
    {
       int labeledValue;
        //this is to show labeled letters 
        int[,] igmSize = labelImage(img);
        txtResult.Text = format(igmSize);
    }


    private int[,] labelImage(Bitmap image)
    {
        int[,] imgMatrix = new int[3, 4];
        int value;

        return imgMatrix;

    }

现在我想重新调整 imgMatrix 到sam时间的第一个功能怎么做这个plz任何帮助???? ?

1 个答案:

答案 0 :(得分:1)

你不能;一个函数只能有一个返回值。

可以以三种方式从函数中获取多个值:

  1. 返回正确数据类型的Tuple对象。这是一个非常糟糕的方法,因为每个值返回变量的名称是" Value1,Value2"等等。

    private Tuple<int[,], int> MyMethod() { ... }
    
  2. 返回包含两个对象的自定义结构/类。这绝对是最好的&#34;这样做的方法。

    private ImageData MyMethod() { ... }
    
  3. 创建您填写的out参数。

    private int[,] MyMethod(out value) { ... }
    
  4. 我选择了选项(2),因为它产生了最易读的代码。如果out真的有意义(就像TryParse那样,那么(3)也是一个不错的选择。如果你对难以阅读的代码感到满意,那就做(1)。