Genel olarak metotlar, geriye değer döndüren ve döndürmeyen metotlar olmak üzere ikiye ayrılır. Geriye değer döndürmeyen metotlar, verilen işi gerçekleştirip başka herhangi bir sorumluluğu olmayan bloklar olarak düşünülebilir. Geriye değer döndüren metotlar ise, oluşturulmuş iş blokları içindeki işlemler tamamlandıktan sonra geriye int, string vb. tiplerde değer döndürür.

Metodun çağrıldığı noktada, bu değer ile başka işlemler yapılabilir. Örnek olarak, Random sınıfını ele alabiliriz. Random, rastgele değer üretmeye yarayan bir sınıftır. Bu sınıfın Next adlı bir metodu daha vardır. Bu metodu çağırdığınızda size bir sonuç üretir ve siz onu programınızda uygun yerlerde kullanırsınız. Bu konuyla ilgi olarak aşağıdaki örneği inceleyelim:

 

Random sayi = new Random();
int no = sayi.Next(1,5);
button1.Text = no.ToString();

 

Yukarıdaki örnek kod, 1'den 4'e kadar olan sayıları seçer. 5 gelme olasılığı yoktur. Random sınıfının Next metodu, bu örnekte olduğu gibi, isterseniz belirlediğiniz sayıları seçmenizi sağlar. Eğitimin ilerleyen safhalarında görecek olsak da, isterseniz bu örnek koda bir düğme (button) ekler, kodu yazar ve button'un text özelliğini de değiştirebiliriz.

Başka bir örnek de, MessageBox sınıfının Show metodudur. MessageBox, kendisine gönderilen değeri popup şeklinde ekrana yazdırmak amacıyla kullanılan sınıftır. Show metodu da oluşturulan bu sınıfın gösterilmesi için kullanılır. Show metodu size DialogResult cinsinden bir değer döndürür ve siz onu yakalayıp işlemlerinizi yaparsınız. Bir metodun geriye hangi tip değeri döndüreceği, aşağıdaki şekilde gösterilen Visual Studio IntelliSense’te kolaylıkla görülebilir. IntelliSense Microsoft'un Görsel Geliştirme Ortamlarında olan (IDE), kod tamamlama özelliğidir. Bir geliştirici olarak daha hızlı ve yanlışsız kod yazmanızı sağlar.

Messagebox sınıfının Show metodu ve  Random sınıfının Next metodu

Yukarıdaki örnekte, MessageBox.Show metodu DialogResult tipinden, Random.Next metodu ise int tipinden bir değer döndürür.

Geriye değer döndüren metotları kullanmak için genellikle aşağıdaki yol izlenir:

DönüşTipi değişkenAdı;

değişkenAdı = metot();

 

Bu yapı kullanılarak, şekildeki metodun çağrılması ve metottan dönen değerin yakalanması için, şöyle bir kod yazılabilir:

Aşağıdaki örnekte Random sınıfından bir instance (örnek) alınarak Next metodu ile 1 ile 101 arasında rastgele bir sayı üretilmesi sağlanmıştır. Instance bir sınıftan örnek alınması, bu sınıftan nesne üretmek işlemidir. Bu örnek oluşturma sırasında bellekte bu sınıfla ilgili bir alan oluşturulur ve değerlerimizi ve işlemlerimizi bu örnek üzerinde yaparız.

 

Random rasgele = new Random();
int sayi;
sayi = rasgele.Next(1, 101);
Console.WriteLine(sayi);

 

Birinci satırda, bir rasgele sayı üreteci oluşturulur.
İkinci satırda, Next metodunun döndüğü int veri tipine sahip bir değişken oluşturulur.
Üçüncü satırda, ikinci satırda oluşturulan sayi değişkeni yazılıp, eşittir işaretinin sağ tarafına metot yazılmıştır. Böylelikle, metottan dönen değer bu değişkene atanır.
Dördüncü satırda ise, sayi değişkeninin değeri ekranda gösterilir.

Bazı metotlar geriye değer döndürmezler. Bunlara void denir. Bir metodun geriye değer döndürmediği, aşağıdaki şekilde gösterilen Visual Studio IntelliSense’de rahatça görülebilir.

Void metodların Intellisense’ de görüntülenmesi

 

void kullanmak oldukça kolaydır. Tek yapılması gereken metodun isminin yazılmasıdır. Örneğin, bir TextBox’ın içeriğini temizlemek için Clear metodunu kullanabilirsiniz:

     textBox1.Clear();

Görüldüğü üzere, void metodu bir değişkene atanmadan doğrudan çalışır.