Neler yeni
Türkiye'nin En Güncel Forum Sitesi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı yada giriş yapmalısınız. Forum üye olmak tamamen ücretsizdir.

Değişken Sayıda Object Parametre Alan Metot Tanımlama , int ve double Toplama Metodu

ByOnur58

Kayıtlı Üye
MFC Üyesi
  • Üyelik Tarihi
    7 Ocak 2015
  • Mesajlar
    2,113
  • MFC Puanı
    10
  • MFC Seviyesi

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());
        }
    }
}
 
Üst Alt