Son Haberler
Anasayfa / Yazılım / C# / Metotların Tanımlanması ve Kullanılması

Metotların Tanımlanması ve Kullanılması

Oluşturulmuş olan metotları çağırmanın 3 yolu vardır.

1) Metodu oluşturulduğu sınıf içinde direkt olarak ismi ile çağırmak. Örnek olarak;

EnBuyukSayiyiBul (sayi1, sayi2, sayi3)
MesajGoster()

gibi..

2) İlgili metodun bağlı bulunduğu sınıftan türetilmiş yani instance alınmış bir objeye bağlı olarak (.) deyiminin ardından kullanma.. (non-static metotlar için)

Uye.BilgileriListele()

gibi..

3) İlgili metodun bağlı bulunduğu sınıfta mevcut olan static metotların kullanılması, (.) deyiminin ardından kullanma..

Convert.ToString()
Console.ReadLine()

Static metotlar bağlı bulundukları sınıf içinde direkt olarak çağırılabilirler. non-static metotları kullanabilmek için ise ilgili sınıftan bir instance almak yani bir nesne üretmek ve o nesne üzerinden ilgili metota erişmek gerekir. Aksi halde c# bu non-static metotlara herhangi bir instance olutşurmadan erişmeye izin vermez. Metotların kullanımının ardından eğer geriye bir değer döndürülmüyorsa sadece return ifadesi kullanılır. Eğer döndürülüyorsa return ile birlikte ilgili ifade kullanılır.

C#’ta metotların nasıl çağırıldını şöyle biraz irdelemek istersek bir yığın yapısı gibi düşünmemizin öncelikle faydalı olacağını belirteyim. Yani LIFO mantığı, Last In First Out, son giren ilk çıkar..

Metotların içinde kullanılan argümanlara yani parametrelere değinelim bir de. Metotlar içinde kullanılan parametreleri bazen tam olarak metodun istediği şekilde vermediğimiz durumlar olur. Bu gibi durumlarda eğer C# kendi içinde casting yapabiliyor ise yapar, yapamıyorsa hata oluşur ya da bazen çevrim yapılsa dahi veri kaybı söz konusu olabilir. Bu durumları dikkate almakta fayda vardır.

Örneğin Math sınıfı içinde yer alan Sqrt metodu parametre olarak kullanıcıdan double tipinde bir veri ister. Oysaki çoğu zaman biz kullanıcılar int tipinde veri veririz. Gerçi int tipindeki bir veri double tipine çevrilebildiği ve double veri tipinin kapsama aralıkları yani değer aralıkları daha geniş olduğu için herhangi bir sorun olmaz.

Console.WriteLine( Math.Sqrt( 9 ) );

Burada vermiş olduğumuz 9 rakamı aslında bir int tiptedir. double olarak vermem gerekir ki, bunun da ifade edilişi 9.0 olmalı. Ama burada casting işleminde yani dönüşüm işleminde herhangi bir kayıp söz konusu olmadığı için bu metot bu tipteki veriyide alabiliyor ve geriye cevap olarak 3.0 dönebiliyor. Ama dediğim gibi hata olabilecek bir çok durumda söz konusu olabilir.

Birbirine çevrilebilen tiplerle alakalı tablo aşağıdaki gibidir:

2013052501

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir