by

Bir Metottan Birden Çok Parametre Döndürme

Programlama dillerinde bir fonksiyondan hepimizin bildiği üzere sadece bir parametre döndürebiliriz. Buradaki döndürmekten kasıt yapılan “*return*” işlemiyle sadece bir parametre döndürdüğümüzdür. Peki eğer birden çok parametre döndürmek istersek ne yaparız? Bunun için 3 methodtan bahsedeceğim.

C’ye alışkın insanların bu soruya vereceği cevap “struct” kullanırız olacaktır. Struct tanımı içinde kullanmak istediğimiz parametreleri belirtir fonksiyonun dönüş tipini de tanımladığımız Struct türünden yaparsak bu işi başarıyla gerçekleştiririz.  OOP’de bunu sınıflar aracılığıyla yaparız.

1. Method:

class Program { static void Main(string[] args) {      Parameters x = foo(); Console.WriteLine(x.a + ” – ” + x.b); Console.ReadKey(); /* Konsolun işlemden sonra herhangi bir tuşa basılana kadar açık kalmasını sağlamak için */ } static Parameters foo() {      Parameters param = new Parameters(); param.a = 5; param.b = 8; return param; } } class Parameters { public int a, b; }

2. Method: Bu methodumuzda “out” parametresini kullanmak olacaktır.

static void Main(string[] args) { int x, y; x = foo(out y); Console.WriteLine(x + ” – ” + y); Console.ReadKey(); /* Konsolun işlemden sonra herhangi bir tuşa basılana kadar açık kalmasını sağlamak için */ } static int foo(out int var1) { var1 = 5; return 8; }

3. Method: .Net Framework 4.0 ile gelen [Tupples](http://msdn.microsoft.com/en-us/library/system.tuple.aspx)

static void Main(string[] args) {    var result = foo(); Console.WriteLine(result.Item1 + ” – ” + result.Item2);    Console.ReadKey(); /* Konsolun işlemden sonra herhangi bir tuşa basılana kadar açık kalmasını sağlamak için */ } static Tuple foo() { return Tuple.Create(3 , “uccccc”); }

Son örnek hariç diğer örnekler hep aynı türden veriler kullanmışım fakat önceki örneklerde de farklı türden veriler kullanmamız mümkün. Ayrıca aynı türe sahip veriler için kullanılacak başka methodlarda mevcut. Mesela *Collections *kullanımı.

İyi akşamlar