Metot Geri Dönüşleri Üzerine
23 Haziran Çarşamba, 2010 | C# /*Yorumlar (1)*/
Metotlar geriye değer döndürür yada döndürmez. Peki döndürenler kaç değer döndürür denildiğinde tabi ki bir deriz. Birden fazlaya ihtiyaç varsa ne yaparız?
Bunun için 3 metot prototipi yazdım, paylaşıyorum.
class Program
{
static void Main(string[] args)
{
//1. yöntemin kullanımı
int a, b;
a = Yontem1(out b);
// sonuc
//a -> 20 ve b -> 10 olur.
}
//1. yöntem -> out kullanımı
static int Yontem1(out int par)
{
par = 10;
return 20;
}
İlk yöntem out parametre anahtarını kullanmak. Geriye dönmediği kesin ama metottan etkilendiğide bir gerçek. İşe yarıyor mu, evet :)
class Program
{
static void Main(string[] args)
{
//2. yöntemin kullanımı
DonenTip tip = Yontem2();
//sonuc
//tip.a -> 20 ve tip.b -> 10 olur.
}
//2. yöntem -> sınıf(class) kullanmak
class DonenTip
{
public int a, b;
}
static DonenTip Yontem2()
{
DonenTip tip = new DonenTip();
tip.a = 20;
tip.b = 10;
return tip;
}
İkinci yöntem ise Classnesne (Custom Reference Type) kullanmak. Geriye yine tek bir nesne dönüyor. İçsel olarak genişletilebilmesi (property, field) sayesinde çok kullanışlı lakin yazması zahmetli.
class Program
{
static void Main(string[] args)
{
//3. yöntemin kullanımı
var sonuc = Yontem3();
//sonuc.Item1 -> 20 ve sonuc.Item2 -> 10 olur.
}
//3. yöntem Tuples kullanımı
static Tuple<int, int> Yontem3()
{
return Tuple.Create(20, 10);
}
Son yöntem aslında yazının amacı ve Framework 4.0 yeniliği olan Tupleçok-ögeli kullanmak...
Örnek proje.