Semasa menyelidik pustaka C# 7 yang telah dinyahkompilasi, seseorang mungkin menghadapi penggunaan generik ValueTuple. Memahami tujuan ValueTuples dan kelebihannya berbanding Tuple tradisional adalah penting.
Perbezaan Utama:
Rasional untuk ValueTuples:
Memperkenalkan ValueTuples dalam C# 7 didorong oleh pertimbangan prestasi:
Contoh:
Menunjukkan penggunaan dan faedah ValueTuples:
public (int sum, int count) DoStuff(IEnumerable<int> values) { var res = (sum: 0, count: 0); foreach (var value in values) { res.sum += value; res.count++; } return res; }
Menggunakan penguraian:
var result = DoStuff(Enumerable.Range(0, 10)); Console.WriteLine($"Sum: {result.sum}, Count: {result.count}");
Atau menggunakan pembolehubah baharu:
ValueTuple<int, int> valueTuple = DoStuff(Enumerable.Range(0, 10)); Console.WriteLine(string.Format("Sum: {0}, Count: {1})", valueTuple.Item1, valueTuple.Item2));
Pelaksanaan Pengkompil:
Pengkompil menjana kod yang menggunakan medan ValueTuple secara dalaman, sementara menyediakan akses hujah bernama untuk penggunaan intuitif.
Kesimpulan:
ValueTuples menawarkan kelebihan prestasi dan kemudahan yang ketara berbanding Tuples tradisional kerana sifat jenis nilai, kebolehubahan dan sintaksisnya gula.
Atas ialah kandungan terperinci ValueTuple vs. Tuple dalam C#: Apakah Prestasi Utama dan Perbezaan Reka Bentuk?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!