C# Metotların Geriye Bilgi Göndermeleri

C# Metotlar İçin Parametre Tanımlamak konulu örneklerimizde hazırladığımız 2 metot geriye bilgi göndermiyorlardı.
Bu nedenle metot adından önce void anahtar kelimesini kullandık.
slide-1-638
Şimdi aynı metotlarda değişiklik yapıp kendisine gönderilen 2 sayının toplanıp sonucun geriye gönderilmesini sağlayacağız. Bu amaçla metot adının önüne yazdığımız void kelimesini silip int yazdık.

static int Topla(int sayi1, int sayi2) 
{ 
int sonuc = sayi1 + sayi2; 
return sonuc;     
} 

Metot geriye ne tür bilgi gönderecekse o bilgi tipinin metot adının önüne yazılması gerekmektedir. Bu metot geriye int tipinde bilgi göndereceği için metot adının önüne int yazdık. Metotlarda geriye bilgi gönderme işlemi return deyimi ile yapılmaktadır.

Bu metot kendisine gönderilen 2 bilgiyi toplayıp “sonuc” değişkenine aktardıktan sonra bu değişkenin içeriğini return ile geriye göndermektedir. Topla() adını verdiğimiz metotta bu değişiklik yapıldıktan sonra bu metodun çağrılma şeklinde değişiklik yapılması gerekir.

static void Main(string[] args)
{
int maas, mesai, yekun;
maas = 1250;
mesai = 125;
yekun = Topla(maas, mesai);
Console.WriteLine("Sayıların Toplamı=" + yekun);
Console.ReadKey();
}

Konunun iyice anlaşılmasını sağlamak için şimdi başka bir metot hazırlayacağız. Konsol uygulaması dahilinde hazırlayacağız bu metot int tipinde bir bilgiyi parametre olarak vereceğimiz için metot adından sonra parantezlerin arasına “int X” yazdık. Bu metot geriye double tipinde bilgi göndereceği için metot adından önce double yazdık. Bu metodu, dahil ettiğimiz sınıfın örneğini almadan kullanmak istediğimiz için ayrıca static olmasını sağladık.

static double karekok(int X) 
{ 
double kok = Math.Sqrt(X); 
return kok; 
} 

Bu metotta kullanılan Sqrt() metodu Math sınıfında tanımlıdır. Bu nedenle metot adından önce sınıfın adını yazdık. Yukarıda belirtildiği gibi metotlarda geriye değer gönderme işlemi return deyimi ile yapılmaktadır. Bu metodu ve bu metodu çağıran satırları konsol uygulamasına yazdık.

Bu konsol uygulaması derlenip çalıştırıldığında kullanıcıdan karekökü alınacak sayı istenir. Kesirli bir sayının karekökü alınmak istenirse hata meydana gelir. Çünkü bu metodu int tipinde bilgi almak üzere düzenledik.

Bunun önüne geçmek için girilen sayının int tipine dönüştürülmesi veya bu örnekte kullanılan karekok() metodunun geriye double bilgi göndermesi sağlanabilir Diğer yandan eksi bir sayının karekökünü almak mümkün değildir. Bu şekilde düzenlenen uygulama çalıştırılıp eksi bir sayı girildiğinde programın çalışması kırılmaz ama kullanıcının bu konuda bilgilendirilmesi gerekir. Bu amaçla hazırlamış olduğumuz metodu aşağıdaki gibi düzenledik.

static double karekok(double X) 
{ 
double kok; 
if (Math.Sign(X) < 1) 
{ 
Console.WriteLine("girdiğiniz sayi negatif"); 
return 0; 
} 
else 
{     
kok = Math.Sqrt(X); 
return kok; 
} 
} 

Sayısal bilginin negatif olup olmadığı öğrenilmek istendiği zaman Math sınıfının Sign() metodundan yararlanılmaktadır. Sign() metodu parametre olarak aldığı bilgi negatif ise geriye -1 göndermektedir.

Pin It on Pinterest