1. 程式人生 > >一個方法返回多個數據項

一個方法返回多個數據項

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