using System;
using static System.Console;
class Test
{
static void Main(string[] args)
{
Tuple<int, string, string> p = new Tuple <int, string, string>(1, "Steve", "Jobs");
WriteLine($"{p.Item1},{p.Item2},{p.Item3}");
var numbers = Tuple.Create(1, 2, 3, 4, 5, 6, 7, Tuple.Create(8, 9, 10, 11, 12, 13));
WriteLine($"{numbers.Item7}");
WriteLine($"{numbers.Rest}");
WriteLine($"{numbers.Rest.Item1}");
WriteLine($"{numbers.Rest.Item1.Item1}");
WriteLine($"{numbers.Rest.Item1.Item2}");
var num = Tuple.Create(1, 2, Tuple.Create(3, 4, 5, 6, 7, 8), 9, 10, 11, 12, 13 );
WriteLine($"{num.Item1}");
WriteLine($"{num.Item2}");
WriteLine($"{num.Item3}");
WriteLine($"{num.Item3.Item1}");
WriteLine($"{num.Rest}");
WriteLine($"{num.Rest.Item1}");
(int x,int y)=(6,8);
(int i,string s,double d) t=(1,"aaa",1.2);
var t2=("aa","bb");
var t3=(s1:"str1",s2:"str2");
WriteLine($"{x},{y}");
(x,y)=(y,x);
WriteLine($"{x},{y}");
WriteLine($"{t.i},{t.s},{t.d}");
WriteLine($"{t2.GetType()},{t2.Item1},{t2.Item2}");
WriteLine($"{t3.s1},{t3.s2},{t3.Item1},{t3.Item2}");
(int n,char c)=f(("sss",111));
(int nn,char cc) vt1=f(("sss",111));
var vt2=f(("sss",111));
WriteLine($"{n},{c}");
WriteLine($"{vt1.nn},{vt1.cc}");
WriteLine($"{vt2.Item1},{vt2.Item2}");
ReadKey();
}
static (int,char) f((string s,int i) t)
{
WriteLine($"{t.i},{t.s}");
return (i:123,s:'D');
}
}


using static System.Console;
class Test
{
static void Main(string[] args)
{
Tuple<int, string, string> p = new Tuple <int, string, string>(1, "Steve", "Jobs");
WriteLine($"{p.Item1},{p.Item2},{p.Item3}");
var numbers = Tuple.Create(1, 2, 3, 4, 5, 6, 7, Tuple.Create(8, 9, 10, 11, 12, 13));
WriteLine($"{numbers.Item7}");
WriteLine($"{numbers.Rest}");
WriteLine($"{numbers.Rest.Item1}");
WriteLine($"{numbers.Rest.Item1.Item1}");
WriteLine($"{numbers.Rest.Item1.Item2}");
var num = Tuple.Create(1, 2, Tuple.Create(3, 4, 5, 6, 7, 8), 9, 10, 11, 12, 13 );
WriteLine($"{num.Item1}");
WriteLine($"{num.Item2}");
WriteLine($"{num.Item3}");
WriteLine($"{num.Item3.Item1}");
WriteLine($"{num.Rest}");
WriteLine($"{num.Rest.Item1}");
(int x,int y)=(6,8);
(int i,string s,double d) t=(1,"aaa",1.2);
var t2=("aa","bb");
var t3=(s1:"str1",s2:"str2");
WriteLine($"{x},{y}");
(x,y)=(y,x);
WriteLine($"{x},{y}");
WriteLine($"{t.i},{t.s},{t.d}");
WriteLine($"{t2.GetType()},{t2.Item1},{t2.Item2}");
WriteLine($"{t3.s1},{t3.s2},{t3.Item1},{t3.Item2}");
(int n,char c)=f(("sss",111));
(int nn,char cc) vt1=f(("sss",111));
var vt2=f(("sss",111));
WriteLine($"{n},{c}");
WriteLine($"{vt1.nn},{vt1.cc}");
WriteLine($"{vt2.Item1},{vt2.Item2}");
ReadKey();
}
static (int,char) f((string s,int i) t)
{
WriteLine($"{t.i},{t.s}");
return (i:123,s:'D');
}
}

