12 Nisan 2013 Cuma

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



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



UYGULAMAYI İNDİR

Hiç yorum yok :

Yorum Gönder