C# Tuples
Sep 03, 2024 pm 03:30 PMTuple 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.
Bagaimana untuk Mencipta Tuple C#?
Tuple boleh dibuat dalam dua cara berbeza
1. Menggunakan Pembina
Pembina untuk mencipta tupel terdapat dalam Tuple
Tuple Elemen Tunggal
Tuple <T1> (T1)
Contoh:
Tuple<int> Tuple_example = new Tuple<int>(27); Console.WriteLine(Tuple_example); Console.ReadLine();
Output:
Tuple Berbilang Elemen
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:
2. Cipta Kaedah
C# menyediakan kaedah Buat statik untuk mencipta tuple seperti berikut
Tuple Elemen Tunggal
Create (T1);
Contoh:
var Tuple_example = Tuple.Create(27); Console.WriteLine(Tuple_example); Console.ReadLine();
Output:
Tuple Berbilang Elemen
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.
ValueTuple
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
- Adalah mudah untuk mencipta 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();
- ValueTuple juga boleh diisytiharkan tanpa menggunakan kata kunci ‘var’. Dalam kes ini, kami perlu menyediakan jenis data setiap ahli
Contoh:
(int, string, bool) Tuple_example = (1, "cat", true); Console.WriteLine(Tuple_example.Item1); Console.WriteLine(Tuple_example.Item2.ToString()); Console.ReadLine();
Output:
- Nilai boleh dikembalikan daripada ValueTuple menggunakan
Contoh:
details.Item1;?? – returns 28 details.Item2; -- returns ”CBC”
- ValueTuple, tidak seperti tupel biasa, tidak boleh mengandungi satu elemen sahaja.
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.
- ValueTuple boleh menyimpan lebih daripada lapan nilai tanpa perlu meletakkan tuple lain di kedudukan ketujuh.
- Sifat dalam ValueTuple boleh mempunyai nama yang berbeza daripada Item1, Item2 dll.
(int ID, String Firstname, string SecondName) details = (28, “CBC”, “C# Tuples”);
- Elemen dalam ValueTuples juga boleh diasingkan atau dibuang, bergantung pada keperluan pengaturcaraan. Dalam contoh di atas, elemen 'FirstName' boleh dibuang dan tuple yang mengandungi elemen pertama dan elemen ketiga boleh dihantar sebagai jenis pulangan kaedah.
Bagaimana Tuple Berfungsi?
- Rangka kerja C# membenarkan hanya lapan elemen dalam tupel, ini bermakna kita boleh mempunyai nilai dari 0 hingga 7 dan jika anda ingin mencipta Tuple dengan lebih daripada itu, kemudian tentukan elemen ketujuh TRest sebagai tuple bersarang
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”));
- Satu penggunaan tuple yang penting ialah menyampaikannya sebagai entiti tunggal kepada kaedah tanpa menggunakan kata kunci 'keluar' dan 'ref' tradisional. Penggunaan parameter 'Keluar' dan 'ref' boleh menjadi sukar dan mengelirukan, juga parameter 'keluar' dan 'ref' tidak berfungsi dengan kaedah 'asnyc'. cth. public void TupleExampleMethod (Tuple
tupleexample)
{ Var multiplication = tupleexample.Item1 * tupleexample.Item2; Console.WriteLine (“Multiplication is”, {0}, multiplication); }
Kaedah TupleExampleMethod akan kelihatan seperti
TupleExampleMethod(new Tuple<int, int> (34,56));
- The dynamic keyword can also be used to return values from any method, but it is seldom used due to performance issues. The returning of the tuple from a method.
public static Tuple <int, string> GetPerson() { return Tuple.Create (1, “abc”); }
Let’s create a program in Visual to understand how tuple works.
- Launch Visual Studio and create a windows project.
- We are creating a simple multiplication program that shows passing tuples by a method. A sample window created as below.
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.
Conclusion
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!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Panduan untuk Penjana Nombor Rawak dalam C#. Di sini kita membincangkan cara?Penjana Nombor Rawak berfungsi, konsep nombor pseudo-rawak dan selamat.

Panduan untuk Faktorial dalam C#. Di sini kita membincangkan pengenalan kepada faktorial dalam c# bersama-sama dengan contoh dan pelaksanaan kod yang berbeza.

Perbezaan antara multithreading dan asynchronous adalah bahawa multithreading melaksanakan pelbagai benang pada masa yang sama, sementara secara tidak sengaja melakukan operasi tanpa menyekat benang semasa. Multithreading digunakan untuk tugas-tugas yang berintensifkan, sementara asynchronously digunakan untuk interaksi pengguna. Kelebihan multi-threading adalah untuk meningkatkan prestasi pengkomputeran, sementara kelebihan asynchronous adalah untuk tidak menghalang benang UI. Memilih multithreading atau asynchronous bergantung kepada sifat tugas: tugas-tugas intensif pengiraan menggunakan multithreading, tugas yang berinteraksi dengan sumber luaran dan perlu menyimpan respons UI menggunakan asynchronous.

Panduan Nombor Perdana dalam C#. Di sini kita membincangkan pengenalan dan contoh nombor perdana dalam c# bersama dengan pelaksanaan kod.

Sejarah dan evolusi C# dan C adalah unik, dan prospek masa depan juga berbeza. 1.C dicipta oleh BjarnestroustRup pada tahun 1983 untuk memperkenalkan pengaturcaraan berorientasikan objek ke dalam bahasa C. Proses evolusinya termasuk pelbagai standardisasi, seperti C 11 memperkenalkan kata kunci auto dan ekspresi Lambda, C 20 memperkenalkan konsep dan coroutin, dan akan memberi tumpuan kepada pengaturcaraan prestasi dan sistem pada masa akan datang. 2.C# telah dikeluarkan oleh Microsoft pada tahun 2000. Menggabungkan kelebihan C dan Java, evolusinya memberi tumpuan kepada kesederhanaan dan produktiviti. Sebagai contoh, C#2.0 memperkenalkan generik dan C#5.0 memperkenalkan pengaturcaraan tak segerak, yang akan memberi tumpuan kepada produktiviti pemaju dan pengkomputeran awan pada masa akan datang.

Panduan kepada Corak dalam C#. Di sini kita membincangkan pengenalan dan 3 jenis Corak teratas dalam C# bersama-sama dengan contoh dan pelaksanaan kodnya.

Terdapat beberapa cara untuk mengubah format XML: mengedit secara manual dengan editor teks seperti Notepad; Memformat secara automatik dengan alat pemformatan XML dalam talian atau desktop seperti XMLBeAutifier; Tentukan peraturan penukaran menggunakan alat penukaran XML seperti XSLT; atau menghuraikan dan beroperasi menggunakan bahasa pengaturcaraan seperti Python. Berhati -hati apabila mengubahsuai dan membuat sandaran fail asal.

Panduan untuk Palindrome dalam C#. Di sini kita membincangkan pengenalan dan logik di sebalik palindrom dalam C#? bersama pelbagai kaedah dengan kodnya.
