KONU : C Sharp Uygulamalar - C Sharp ( C# ) form uygulaması değişken sayıda parametre alan metot tanımlama, değişken parametreli toplama metodu toplama.
UYGULAMAYI İNDİR
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace DegiskenSayidaParametreAlanMetotTanımlama
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//Değişken sayıda parametre alan metotların tanımlanmasında params sözcüğünü aşağıda
//gösterildiği gibi kullanırız. Eğer params sözcüğü yazılmazsa derleyici hatası alınır.
//(yukarıdaki tanımlama için :Topla(0,6, 8, 9) )
//Burada iki farklı tipimiz var : int ve double, birinci parametre 0 ise
private object Topla(int tip, params object[] sayilar)
{
//Eğer topla metodu parametresiz olarak çağrılmışsa sonuç olarak 0 dönülsün
if (tip != 0 && tip != 1)
{
return 0;
}
if (sayilar.Length <= 0)
{
return 0;
}
//bir veya daha fazla parametre girilmiş ise metod buradan devam eder.
//toplam değişkeni ile parametre olarak girilen tüm sayıları toplayalım
object toplam = null;
int toplamInt = 0;
double toplamDouble = 0;
//sayilar dizisine kaç tane değer atanmış ise hepsini toplayalım
// 2 Farklı tipimiz olsun : int ve double metot çağrıldığında hangi tip
// ile çağrılmış ise toplamayı o tipi göre yapalım
if (tip == 0)
{
for (int i = 0; i < sayilar.Length; i++)
{
// try catch bir hata olması durumunda hatayı yok sayarak işleme kaldığı
//yerden ddevam eder.
try
{
toplamInt += Convert.ToInt32(sayilar[i]);
}
catch (Exception)
{
}
}
toplam = (object)toplamInt;
}
else if (tip == 1)
{
for (int i = 0; i < sayilar.Length; i++)
{
// try catch bir hata olması durumunda hatayı yok sayarak işleme kaldığı
//yerden ddevam eder.
try
{
toplamDouble += Convert.ToDouble(sayilar[i]);
}
catch (Exception)
{
}
}
toplam = (object)toplamDouble;
}
return toplam;
}
private void btnBasla_Click(object sender, EventArgs e)
{
lstSonuclar.Items.Clear();
// Değişken int tipindeki parametreleri object tipinde parametre olarak yollayarak
// toplama işlemlerini gerçekleşticeğiz. int tipi için ilk parametre 0 olarak ayarladım.
lstSonuclar.Items.Add("İşlem : " + Topla(0).ToString());
lstSonuclar.Items.Add("İşlem : 6 = " + Topla(0, 6).ToString());
lstSonuclar.Items.Add("İşlem : 6 + 8 = " + Topla(0, 6, 8).ToString());
lstSonuclar.Items.Add("İşlem : 6 + 8 + 9 = " + Topla(0, 6, 8, 9).ToString());
lstSonuclar.Items.Add("İşlem : 6 + 8 + 9 + 20 = " + Topla(0, 6, 8, 9, 20).ToString());
lstSonuclar.Items.Add("İşlem : 6 + 8 + 9 + 20 + 30 = " + Topla(0, 6, 8, 9, 20, 30).ToString());
lstSonuclar.Items.Add("");
lstSonuclar.Items.Add("");
// Değişken double tipindeki parametreleri object tipinde parametre olarak yollayarak
// toplama işlemlerini gerçekleşticeğiz. Double tipi için ilk parametre 1 olarak ayarladım.
lstSonuclar.Items.Add("İşlem :" + Topla(1).ToString());
lstSonuclar.Items.Add("İşlem : 6 = " + Topla(1, 6.6).ToString());
lstSonuclar.Items.Add("İşlem : 6 + 8 = " + Topla(1, 6.6, 8.1).ToString());
lstSonuclar.Items.Add("İşlem : 6 + 8 + 9 = " + Topla(1, 6.6, 8.1, 9.7).ToString());
lstSonuclar.Items.Add("İşlem : 6 + 8 + 9 + 20 = " + Topla(1, 6.6, 8.1, 9.7, 20.6).ToString());
lstSonuclar.Items.Add("İşlem : 6 + 8 + 9 + 20 + 30 = " + Topla(1, 6.6, 8.1, 9.7, 20.6, 30.4).ToString());
}
}
}

Hiç yorum yok :
Yorum Gönder