Return Deyimi
Normal şartlarda çağrılan fonksiyon veya yordamdaki satırlar sıra ile işletilir. Fonksiyondaki bütün satırlar işletildikten sonra projenin işletimi söz konusu fonksiyonun çağrıldığı satırdan bir sonraki satıra geçer. Çağrılıp işletilen fonksiyondan veya metottan sonra işletilecek başka satır yoksa projenin işletimi aktif formda kalır. Fonksiyondaki bütün satırlar işletilmeden fonksiyondan çıkılabilir. Bu amaçla return deyiminden yararlanılmaktadır.
Fonksiyonlar İçin Parametre Tanımlamak
Yukarıda hazırladığım fonksiyon geriye bir değer göndermediği gibi fonksiyon çağrılırken fonksiyona bilgi gönderilmedi. Şimdi yukarıda verdiğim Mesaj_yaz() fonksiyonunda değişiklik yapıp fonksiyonun bir parametreye sahip olmasını sağlayacağım. Fonksiyon dışarıdan bilgi alacaksa veya parametrelere sahip olacaksa bu parametreler değişken tanımlanıyor gibi parantezin içine yazılmalıdır.
Fonksiyonların Geriye Değer Göndermeleri
Yukarıda hazırladığım 2 fonksiyon geriye bir değer göndermiyorlardı. Bu nedenle fonksiyon adından önce void deyimini kullandım. Şimdi yukarıda verdiğim Topla() fonksiyonunda değişiklik yapıp bu fonksiyona gönderilen 2 sayının toplanıp sonucun geriye gönderilmesini sağlayacağım. Bu amaçla fonksiyon adının önüne yazdığım void deyimini silip yerine intyazdım.
static double karekok(int X)
{ double kok; kok = Math.Sqrt(X); return kok; } |
static double karekok(double X) |
Fonksiyonları Başka Formlarda Kullanmak
Yukarıdaki sayfada kendisine parametre olarak verilecek 2 sayıyı toplayacak Topla() fonksiyonu üzerinde çalıştığım formda tanımlayıp aynı formda çağırıp kullandım. Hazırlamak istediğiniz fonksiyonun başka bir formdan çağrılmasına imkan sağlamak istiyorsanız fonksiyon adının başına public deyimini yazmanız gerekir. Bu konuda size bilgi vermek için üzerinde çalıştığım projeye 2. bir forma dahil ettim.Dizi Değişkenleri Parametre Olarak Kullanmak
Yukarıda belirtildiği gibi hazırladığınız metot veya fonksiyonların istediğiniz tip ve sayıda parametreye sahip olmasını sağlayabilirsiniz. Ancak isterseniz fonksiyona parametre olarak göndermek istediğiniz bilgileri bir dizi değişkene aktarıp bu dizi değişkeni fonksiyona parametre olarak verebilirsiniz.Değer ve Referans Parametreleri
Şimdiye kadar metot ve fonksiyonlar ile ilgili olarak verilen örneklere göre int, char, long vs gibi belleğin stack adı verilen kısmında saklanan bilgiler fonksiyonlara değer olarak gönderilmektedir. Şimdi ve anlaşılmaz cümleyi anlaşılır kılmak için basit bir örnek vereceğim.
Bu konsol uygulamasında Main() fonksiyonu içinde önce “Sayi” adında int tipinde bir değişken tanımladım ve değer aktarıp içeriğini WriteLine() metodu ile ekrana yazdım. Ardından uygulamadaki “Procedure1” adını vermiş olduğum yordamı işletip “Sayi” değişkenin içeriğini tekrar ekrana yazdırdım.
Bu konsol uygulamasındaki “Procedure1” adını vermiş olduğum metot, başlangıçta 100 değerini içeren “X” adını verdiğim parametrenin içeriğini 200 olarak değiştirmektedir. Bu şartlarda konsol uygulaması derlenip çalıştırıldığında ekrana 2 kez 100 yazılır.Metotların Aşırı Yüklenmesi
Şimdiye kadar metotlar ve fonksiyonlar hakkında verilen bilgilere göre metotlar eksik veya fazla parametre ile işletilmek istendiğinde hata meydana gelmektedir. Bu konuda size bilgi vermek için aşağıda verdiğim basit konsol uygulamasını hazırladım.static int Procedure1(int X, int Y) |
Kullanıcı veya programcı int tipinde 2 sayıyı toplamak istiyorsa metodu 2 parametre ile çağırır. Bu durumda aynı metodun 2 parametreli kopyası devreye girer. Metot 3 parametre ile çağrıldığında ise 3 parametreye sahip 2. kopyası işlev görür.
Derleyici metodun çağrıldığı satırda kullanılan parametre sayısına bakarak hangi metodun hangi kopyasını kullanacağına karar verir. Konsol uygulaması aşağıda verilen şekli ile derlenip işletildiğinde metodun 3. parametreye sahip versiyonu işletilir.
static int Procedure1(int X, int Y) |
Bu metoda parametre olarak 2 float sayıyı gönderirseniz metodun 2. kopyası işletilir. Yukarıda verilen konsol uygulaması aşağıdaki gibi düzenlediğinde bu metodun float bilgiler üzerinde işlem yapan kopyası işletilir.
static int Procedure1(params int[] X)
}
|
Konunun iyice anlaşılması için bir Visual C# projesi hazırladım ve forma ListBox yerleştirdim. ListBox’a aktarılmış tipindeki bilgileri hazırlayacağım metot ile toplayıp formdaki TextBox’a yazacağım. Bu amaçla projenin formunu aşağıdaki gibi düzenledim.
0 yorum: