VnexTR: Bilişim Forumu

Tam Versiyon: Değişken Sayıda Object Parametre Alan Metot Tanımlama , int ve double Toplama Metodu
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Kod:
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 **** 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());
}
}
}[/i][/i]