C#中的元組(Tuple)和結構體(struct)


在正常的函數調用中,一個函數只能返回一個類型的值,但在某些特殊情況下,我們可能需要一個方法返回多個類型的值,除了通過ref,out或者泛型集合可以實現這種需求外,今天,講一下元組和結構體在這一方面的應用。

 

    元組

    元組(Tuple)是一種數據結構,用於存放一組數據,它是值類型的,可讀寫的,類似於泛型集合,但元組的使用更加精巧,另外,元組最多接受7個元素。

    元組的聲明很簡單:

var tupledata=("你好",1,2) ;//最簡單的聲明方法 
Tuple<int,string> tuple=new Tuple<int, string>(1,"你好");//最正式的聲明

    正因為他是值類型,所以聲明的時候要同時賦值,不然編譯不通過。

    那如何去獲取元組中的值呢?很簡單,使用元組名.Item1-7

int a = tuple.Item1;string b = tuple.Item2;

    元組中的元素也是可以自定義名稱的

var tup = (name: 1, age: 2);Console.WriteLine(tup.Item1);   //之前的調用方法依然是可用的Console.WriteLine(tup.age);

    了解了這些,我們在方法中就可以嘗試通過元組去返回數據了

static (int, string) returnTuple() => (1, "你好");

var result =returnTuple();
Console.WriteLine(result.Item1);
Console.WriteLine(result.Item2)

    運行結果如下:

 

    結構體

    結構體(struct)也是值類型的,它的聲明就像類一樣,只不過關鍵字是struct

    下面來看一下它的聲明:

  struct MyStruct    { 
public int id;
public string name;
}

    它的使用也很簡單,繼續來看代碼

MyStruct test = new MyStruct{ 
id = 1,
      name = "小藝"
};

 

 

    因為結構體是一種值類型的,所以當一個結構體對象給另一個實例對象賦值后,改變任意一方的屬性值,都不會影響到新賦值的實例對象,而引用類型則不同,本節對此不展開討論,讀者有興趣可以關注后續的文章。

 

  我的公眾號二維碼:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM