一个方法返回多个数据项

方法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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘建宁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值