با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، با یکی دیگر از جلسات دوره کامل آموزش #C در خدمت شما دوستان هستیم . در بخش قبلی با نحوه Initialize کردن انواع اشیاء و مجموعه ها در #C آشنا شدید ، در بخش بعدی قصد داریم شما را با Tuple در زبان #C و Tuples های تودرتو در سی شارپ آشنا کنیم. تا پایان این جلسه همراه ما باشید.
1 | Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> |
1 2 | Tuple<int, string, string> person = new Tuple <int, string, string>(1, "Steve", "Jobs"); |
1 | var person = Tuple.Create(1, "Steve", "Jobs"); |
1 | var numbers = Tuple.Create(1, 2, 3, 4, 5, 6, 7, 8); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | var person = Tuple.Create(1, "Steve", "Jobs"); person.Item1; // returns 1 person.Item2; // returns "Steve" person.Item3; // returns "Jobs" var numbers = Tuple.Create("One", 2, 3, "Four", 5, "Six", 7, 8); numbers.Item1; // returns "One" numbers.Item2; // returns 2 numbers.Item3; // returns 3 numbers.Item4; // returns "Four" numbers.Item5; // returns 5 numbers.Item6; // returns "Six" numbers.Item7; // returns 7 numbers.Rest; // returns (8) numbers.Rest.Item1; // returns 8 |
اگر می خواهید بیش از هشت عنصر را در یک دسته قرار دهید، می توانید این کار را با قرار دادن یک شی دیگر به عنوان عنصر هشتم انجام دهید. و با استفاده از پراپرتی Rest می توان به عناصر |آن دسترسی داشت.
برای دسترسی به عنصر tuple داخلی ، از پراپرتی <Rest.Item1.Item<elelementNumber استفاده منی کنیم.
1 2 3 4 5 6 | var numbers = Tuple.Create(1, 2, 3, 4, 5, 6, 7, Tuple.Create(8, 9, 10, 11, 12, 13)); numbers.Item1; // returns 1 numbers.Item7; // returns 7 numbers.Rest.Item1; //returns (8, 9, 10, 11, 12, 13) numbers.Rest.Item1.Item1; //returns 8 numbers.Rest.Item1.Item2; //returns 9 |
البته می توانید شیء تودرتو را در هر جایی از توالی وارد کنید. ولی، توصیه می شود که در انتهای دنباله قرار گیرد،
1 2 3 4 5 6 7 | var numbers = Tuple.Create(1, 2, Tuple.Create(3, 4, 5, 6, 7, 8), 9, 10, 11, 12, 13 ); numbers.Item1; // returns 1 numbers.Item2; // returns 2 numbers.Item3; // returns (3, 4, 5, 6, 7, 8) numbers.Item3.Item1; // returns 3 numbers.Item4; // returns 9 numbers.Rest.Item1; //returns 13 |
یک متد می تواند دارای پارامتر tuple باشد. مانند زیر :
1 2 3 4 5 6 7 8 9 10 11 12 | static void Main(string[] args) { var person = Tuple.Create(1, "Steve", "Jobs"); DisplayTuple(person); } static void DisplayTuple(Tuple<int,string,string> person) { Console.WriteLine($"Id = { person.Item1}"); Console.WriteLine($"First Name = { person.Item2}"); Console.WriteLine($"Last Name = { person.Item3}"); } |
یک متد می تواند دارای مقدار بازگشتی tuple باشد. مانند زیر :
1 2 3 4 5 6 7 8 9 | static void Main(string[] args) { var person = GetPerson(); } static Tuple<int, string, string> GetPerson() { return Tuple.Create(1, "Bill", "Gates"); } |
Tuples را می توان در سناریوهای زیر استفاده کرد: