Rumah > Artikel > pembangunan bahagian belakang > C# Tuples
Tuple C# ialah struktur data yang diperkenalkan dalam versi C#.net 4.0. Struktur data tuple direka bentuk untuk memegang elemen yang mempunyai jenis data yang berbeza. Tuple membantu dalam mengembalikan berbilang nilai daripada kaedah kelas dalam satu parameter yang mempunyai banyak kelebihan berbanding Parameter Keluar, jenis kelas atau struktur atau jenis pulangan dinamik. Apabila parameter dihantar ke dalam set data tunggal, menjadi mudah untuk mengakses set data ini dan melakukan operasi yang berbeza padanya.
Tuple boleh dibuat dalam dua cara berbeza
Pembina untuk mencipta tupel terdapat dalam Tuple
Tuple <T1> (T1)
Contoh:
Tuple<int> Tuple_example = new Tuple<int>(27); Console.WriteLine(Tuple_example); Console.ReadLine();
Output:
Tuple <T1, T2> (T1, T2)
Contoh:
Tuple<int, string, bool> tuple = new Tuple<int, string, bool>(1, "cat", true); Console.WriteLine(tuple.Item1); Console.WriteLine(tuple.Item2.ToString()); Console.ReadLine();
Output:
C# menyediakan kaedah Buat statik untuk mencipta tuple seperti berikut
Create (T1);
Contoh:
var Tuple_example = Tuple.Create(27); Console.WriteLine(Tuple_example); Console.ReadLine();
Output:
Create (T1, T2);
Contoh:
var Tuple_example = Tuple.Create(1, "cat", true); Console.WriteLine(Tuple_example.Item1); Console.WriteLine(Tuple_example.Item2.ToString()); Console.ReadLine();
Output:
Semasa menggunakan pembina, kita perlu menentukan jenis data setiap elemen semasa mencipta tupel. Kaedah Cipta membantu kami dalam menghapuskan pengekodan yang menyusahkan seperti yang ditunjukkan di atas.
Tuple generik ialah jenis rujukan yang bermaksud nilai disimpan pada timbunan, yang menjadikan penggunaannya mahal dari segi ingatan dan prestasi. C#7.0 memperkenalkan versi Tuple baharu dan dipertingkat berbanding tupel generik dan menamakannya sebagai ValueTuple. ValueTuple disimpan pada timbunan, yang mudah diperoleh. Tuple nilai disertakan dengan .NET Framework 4.7 atau .NET library 2.0. Untuk memasang fungsi tuple secara berasingan, anda perlu memasang Pakej NuGet yang dipanggil System.Value.Tuple.
Perkara penting tentang ValueTuple
Contoh:
var Tuple_example = (1, "cat", true); Console.WriteLine(Tuple_example.Item1); Console.WriteLine(Tuple_example.Item2.ToString()); Console.ReadLine();
Output:
Ini bersamaan dengan:
var Tuple_example = Tuple.Create(1, "cat", true); Console.WriteLine(Tuple_example.Item1); Console.WriteLine(Tuple_example.Item2.ToString()); Console.ReadLine();
Contoh:
(int, string, bool) Tuple_example = (1, "cat", true); Console.WriteLine(Tuple_example.Item1); Console.WriteLine(Tuple_example.Item2.ToString()); Console.ReadLine();
Output:
Contoh:
details.Item1; – returns 28 details.Item2; -- returns ”CBC”
Contoh:
var detail = (28); --this is not a tuple var details = (28, “CBC”); -- this is a tuple
Dalam pernyataan pertama, pengkompil tidak akan menganggap 'perincian' sebagai tuple, sebaliknya, ia akan dipertimbangkan dan jenis 'var' biasa.
(int ID, String Firstname, string SecondName) details = (28, “CBC”, “C# Tuples”);
var nestedtuple_example = new Tuple <int, string, string, int, int, int, string, Tuple<double, int, string>> (5, “This”, “is”, 7,8,9, “number”, Tuple.Create (17.33, 29,”April”));
{ Var multiplication = tupleexample.Item1 * tupleexample.Item2; Console.WriteLine (“Multiplication is”, {0}, multiplication); }
Kaedah TupleExampleMethod akan kelihatan seperti
TupleExampleMethod(new Tuple<int, int> (34,56));
public static Tuple <int, string> GetPerson() { return Tuple.Create (1, “abc”); }
Let’s create a program in Visual to understand how tuple works.
The values from both textboxes are taken into a tuple and the tuple is passed on to a method.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApp1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnMultiply_Click(object sender, EventArgs e) { int value1 = Convert.ToInt32(txtVal1.Text); int value2 = Convert.ToInt32(TxtVal2.Text); CallMethod(new Tuple<int, int>(value1, value2)); } private void CallMethod(Tuple<int, int> tuple) { txtResult.Text = Convert.ToString(tuple.Item1 * tuple.Item2); Console.ReadLine(); } } }
The result is displayed in the third text box named as txtResult. End result looks like.
The tuple data structure is a reference type, which means the values are stored on the heap instead of stack. This makes usage of tuples and accessing them in the program an intensive CPU task. The only 8 elements in tuples property is one of the major drawbacks of tuples as nested tuples are more prone to induce ambiguity. Also accessing elements in tuple with Item
Atas ialah kandungan terperinci C# Tuples. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!