一个方法返回多个数据项

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_18192161/article/details/79220306

方法1:使用out关键字
例:

public class SingleFuncBack
{
      public void ReturnDimensionns(int inputShape, out int height, out int width, out int area)
      {
          height = 0;
          width = 0;
          area = 0;
      }
  }

使用:

SingleFuncBack s = new SingleFuncBack();
int height;
int width;
int area;
s.ReturnDimensionns(1, out height, out width, out area);

ps: ref 和out区别
1、使用ref型参数时,传入的参数必须先被初始化。对out而言,必须在方法中对其完成初始化。
2、使用ref和out时,在方法的参数和执行方法时,都要加Ref或Out关键字。以满足匹配。
3、out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。

方法2:定义一个包含所有返回值的类或结构。
例:
定义结构:

public struct Dimensions
{
     public int height;
     public int width;
     public int area;
}

方法实现

 public Dimensions ReturnDimensionns(int inpuSHape)
 {
       Dimensions d = new Dimensions();
       //给结构复制
       return d;
  }

调用:

SingleFuncBack s = new SingleFuncBack();
Dimensions ds = s.ReturnDimensionns(1);

方法3:使用tuple对象包含所有返回值
例:

public Tuple<int, int, int> ReturnDimensionnsAsTuple(int inputShape)
{
     var obj = Tuple.Create<int,int,int>(5,10,15);
     return obj;
}

调用:

SingleFuncBack s = new SingleFuncBack();
Tuple<int,int,int> ds = s.ReturnDimensionnsAsTuple(1);

ps:
1.Tuple中的数据是否进行修改的
2.Tuple可以包含不同类型任意数量的值
3.Tuple Create方法最多可以接受8个独立值,如果超过8个需要使用public static Tuple

猜你喜欢

转载自blog.csdn.net/qq_18192161/article/details/79220306