C# 4.0 ile gelen Tuple yapısını kullanarak hazırladığımız metottan birden fazla değer döndürebiliriz. Tuple yokken bu işi "out" parametresini kullanarak veya içerisinde birden fazla değer barındıran bir model kullanarak yapabiliriz.
Tuple kullanmanın avantajı ne ?
En büyük avantajı model kullanmadan birden fazla değeri döndürebiliyor olmamızdır.
Nasıl Kullanılır?
public Tuple<int, int> EnPahaliEnUcuzUrunId()
{
long enUcuzUrunId = 1;
long enPahaliUrunId = 2;
return Tuple.Create(enUcuzUrunId , enPahaliUrunId );
}
Gördüğünüz gibi methot geri dönüş tipi olarak Tuple kullandık ve içerisinde 2 tane int tipi tanımlanıp bu değerleri geriye döndürdük.
Şimdi bu metodu çağıralım.
public void main()
{
Tuple<int, int> values= EnPahaliEnUcuzUrunId();
long enUcuz = tupple.Item1;
long enPahali = tupple.Item2;
}
Tuple yapısını kullanarak istediğimiz sayıda istediğimiz tip nesneyi taşıyabiliriz.
Metoda Çok Parametre Geçmek İstersek
Eğer bir metoda birden fazla parametre göndermek istersek bu durumda Tuple kullanılır.
static void Main(string[] args)
{
ParameterizedThreadStart ts = new ParameterizedThreadStart(ThreadMethod);
Thread t = new Thread(ts);
t.Start(Tuple.Create(1, 9.23F, 2));
}
static void ThreadMethod(object values)
{
Tuple<int, float, int> tpl = (Tuple<int,float,int>)values;
Console.WriteLine("Gelen değerler {0} {1} {2}",tpl.Item1,tpl.Item2,tpl.Item3);
}
İyi Çalışmalar,