Kaydol:
Kayıt Yorumları
(
Atom
)
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