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

本文关键字:返回 两个 变量 同类型 函数 一个 | 更新日期: 2023-09-27 18:28:34

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

    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到第一个函数,同时如何执行此plz有任何帮助吗?????

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

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

然而,您可以通过以下三种方式从函数中获取多个值:

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

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

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

    private int[,] MyMethod(out value) { ... }
    

我会选择选项(2),因为它会产生可读性最强的代码。如果out真的有意义(就像TryParse一样),那么(3)也是一个不错的选择。只有当您对难以阅读的代码感到满意时,才执行(1)。