MessageBox Sınıfı etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
MessageBox Sınıfı etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

21 Şubat 2017 Salı

C Sharp Uygulamalar Formdan Girilen Sayıların Toplamı, Ortalaması, Minimum ve Maksimum Değerlerini Hesaplama



KONU : C Sharp Uygulamalar - C Sharp ( C# ) textbox ile girilen sayıları küçükten büyüğe doğru sıralama ve büyükten küçüğe doğru sıralama. Generic list sınıfının Sort() ve Reverse() methodlarını kullanarak sıralama yapma. Girilen sayıların toplamını hesaplama, ortalmasını hesaplama, minimum değeri bulma ve maksimum değerini bulma.
ETİKETLER: c sharp generic list - c sharp sort - c sharp reverse - c sharp dizi - c sharp sıralama - c# list sort - c# list reverse





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 c_sharp_form_girilen_sayilari_siralama
{
    public partial class Form1 : Form
    {
        List sayilar = new List();

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.AcceptButton = btnSayiGir;
        }

        private void btnSayiGir_Click(object sender, EventArgs e)
        {
            try
            {
                int girilenSayi = Convert.ToInt32(txtSayi.Text);
                lstSayilar.Items.Add(girilenSayi);
                sayilar.Add(girilenSayi);
            }
            catch (Exception)
            {
                
            }

            txtSayi.Text = "";
            txtSayi.Focus();

        }

        private void btnSirala_Click(object sender, EventArgs e)
        {
            lstSonuc.Items.Clear();
            sayilar.Sort();

            for (int i = 0; i < sayilar.Count; i++)
            {
                lstSonuc.Items.Add(sayilar[i]);
            }
        }

        private void btnTersSirala_Click(object sender, EventArgs e)
        {
            lstSonuc.Items.Clear();
            sayilar.Sort();
            sayilar.Reverse();

            for (int i = 0; i < sayilar.Count; i++)
            {
                lstSonuc.Items.Add(sayilar[i]);
            }
        }

        private void btnToplam_Click(object sender, EventArgs e)
        {
            lstSonuc.Items.Clear();
            sayilar.Sort();

            long toplam = 0;

            for (int i = 0; i < sayilar.Count; i++)
            {
                toplam = sayilar[i];
            }

            MessageBox.Show("Sayıların Toplamı : " + toplam.ToString());
        }

        private void btnOrtalama_Click(object sender, EventArgs e)
        {
            lstSonuc.Items.Clear();
            sayilar.Sort();

            long toplam = 0;

            for (int i = 0; i < sayilar.Count; i++)
            {
                toplam = sayilar[i];
            }

            MessageBox.Show("Sayıların Ortalaması : " + (toplam/sayilar.Count).ToString());
        }

        private void btnMinimum_Click(object sender, EventArgs e)
        {
            lstSonuc.Items.Clear();
            sayilar.Sort();

            int  minimum = 0;

            for (int i = 0; i < sayilar.Count; i++)
            {
                if (minimum > sayilar[i])
                {
                    minimum = sayilar[i];
                }
            }

            MessageBox.Show("Sayıların minimumu : " + minimum.ToString());
        }

        private void btnMaksimum_Click(object sender, EventArgs e)
        {
            lstSonuc.Items.Clear();
            sayilar.Sort();

            int maksimum = 0;

            for (int i = 0; i < sayilar.Count; i++)
            {
                if (maksimum < sayilar[i])
                {
                    maksimum = sayilar[i];
                }
            }

            MessageBox.Show("Sayıların maksimumu : " + maksimum.ToString());
        }

       
 
    }
}

UYGULAMAYI İNDİR

24 Mayıs 2014 Cumartesi

C Sharp Form 0 ile 10000 Arasında Bulunan Tam Kare Sayıları Bulma Programı



KONU : C Sharp Uygulamalar - C Sharp ( C# ) formda 0 ile 1000 veya 10000 veya farklı girilen farklı bir aralıkta bulunan tam kare sayıları bulma programı. Try catch kullanarak girilen karakterlerin sayı olup olmadığını kontrol etme. c sharp string olan değeri double tipine çevirme örneği. Listbox kontrollünde bulunan sayıları listeleme. Listbox kontrolünde sayıları yan yan yazdırma.
ETİKETLER: c sharp listbox - c sharp try catch - c sharp string to double - c sharp double - c sharp textbox - c sharp button



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 C_Sharp_Form_Tam_Kare_Sayilar
{
    public partial class FormTamKareSayilar : Form
    {
        public FormTamKareSayilar()
        {
            InitializeComponent();
        }

        private void buttonTamKareSayilariListele_Click(object sender, EventArgs e)
        {
            double minimumSayi = 0, maksimumSayi = 0;


            listBoxTamKareSayilar.Items.Clear();


            try
            {
                minimumSayi = double.Parse(textBoxMin.Text);
            }
            catch (Exception)
            {
                MessageBox.Show("Minimum değeri bir sayı olmalıdır.","HATA",MessageBoxButtons.OK,MessageBoxIcon.Error);
                return;
            }

            try
            {
                maksimumSayi = double.Parse(textBoxMax.Text);
            }
            catch (Exception)
            {
                MessageBox.Show("Maksimum değeri bir sayı olmalıdır.", "HATA", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            for (int tamKareSayiMi = (int)minimumSayi; tamKareSayiMi <= maksimumSayi ; tamKareSayiMi++)
            {
                if (tamKareSayiMi != 0 &&tamKareSayiMi == (Convert.ToInt64(Math.Sqrt(tamKareSayiMi)) * Convert.ToInt64(Math.Sqrt(tamKareSayiMi))))
                {
                    listBoxTamKareSayilar.Items.Add(tamKareSayiMi);
                }
            }
        }

        private void FormTamKareSayilar_Load(object sender, EventArgs e)
        {
            //ilk değer olarak minimum sayı 0 olsun
            textBoxMin.Text = "0";

            //ilk değer olarak maksimum sayı 10000 olsun
            textBoxMax.Text = "10000";
        }
    }
}

UYGULAMAYI İNDİR

18 Mayıs 2014 Pazar

C Sharp Form Uygulamalar Girilen Sayının Mükemmel Sayı Olup Olmadığını Bulma




KONU : C Sharp Uygulamalar - C Sharp ( C# ) form da textbox dan girilen değerin tam sayı olup olmadığını bulma. Eğer girilen değer tam sayı ise bu sayının mükemmel sayı olup olmadığını bulma. Eğer sayı mükemmel sayı ise messagebox kullanarak kullanıcıya girilen sayı mükemmel sayıdır uyarısı verdirme. Eğer sayı mükemmel sayı değilse girilen sayı mükemmel sayı değildir uyarısı verdirme.
ETİKETLER: c sharp sayılar - c sharp mükemmel sayılar - c sharp for döngüsü - c sharp mükemmel sayı bulma.






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 C_Sharp_Form_Mukemmel_Sayi
{
    public partial class Form1 : Form
    {
        int bolen;
        int sonucToplam = 0;
        int girilenSayi = 0;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void btnMukemmelSayi_Click(object sender, EventArgs e)
        {
            sonucToplam = 0;

            try
            {
                girilenSayi = Convert.ToInt32(txtGirilenSayi.Text);

                if (girilenSayi == 0)
                {
                    MessageBox.Show("Girilen Sayı Mükemmel Sayı Değildir", "BİLGİ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
            }
            catch
            {
                MessageBox.Show("Lütfen  Tam Sayı Giriniz.", "HATA", MessageBoxButtons.OK, MessageBoxIcon.Error);

                return;
            }

            for (bolen = 1; bolen < girilenSayi; bolen++)
            {
                if (girilenSayi % bolen == 0)
                {
                    //sonucToplam=sonucToplam+bolen; 
                    sonucToplam += bolen;
                }
            }


            if (girilenSayi == sonucToplam)
            {
                MessageBox.Show("Girilen Sayı Mükemmel Sayıdır.","BİLGİ",MessageBoxButtons.OK,MessageBoxIcon.Information);
            }
            else
            {
                MessageBox.Show("Girilen Sayı Mükemmel Sayı Değildir", "BİLGİ", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

        }

    }
}

UYGULAMAYI İNDİR

19 Ocak 2014 Pazar

C Sharp Form Menü Kontrollerini Kullanarak Yazının Stil, Biçim, Font Özelliklerini Ayarlama



KONU : C Sharp ( C# ) form uygulamalar menu kontrolleri yönetmek. Word kontrollerini benzerleri türetmek. C sharp textbox içerisindeki yazıya stil verme, biçim verme, paragraf özelliklerini ayralama, altı çizgili yapma, yazı rengini koyulaştırma, textbox içerindeki yazıyı düz veya italik yazdırma. font özelliklerini değiştirme, c sharp textbox içerisindeki yazıyı sola, ortaya ve sağa yaslama seçenekleri verme, c# textbox içerisindeki yazının font büyüklüğünü değiştirebilme, c sharp textbox içerisinde yazı olan metindeki kelime sayısını hesaplama, c sharp menüyü kullanarak pencere büyüklüklerini ayarlayabilme, c sharp tam ekran yapma, normal gösterme, %50 gösterim yapma, c sharp formu simge durumuna getirme.






UYGULAMAYI İNDİR



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace C_Sharp_Form_Menu_Kontrolleri
{
    public partial class Menu_Kontrolleri : Form
    {
        public Menu_Kontrolleri()
        {
            InitializeComponent();
        }

        private void Mn_Kalın_Click(object sender, System.EventArgs e)
        {
            (sender as MenuItem).Checked = !(sender as MenuItem).Checked;
            if (Mn_Kalın.Checked)
                textBox.Font = new Font(textBox.Font,
                 textBox.Font.Style | FontStyle.Bold);
            else
                textBox.Font = new Font(textBox.Font,
                 textBox.Font.Style ^ FontStyle.Bold);
        }

        private void Mn_Egik_Click(object sender, System.EventArgs e)
        {
            (sender as MenuItem).Checked = !(sender as MenuItem).Checked;
            if (Mn_Egik.Checked)
                textBox.Font = new Font(textBox.Font,
                 textBox.Font.Style | FontStyle.Italic);
            else
                textBox.Font = new Font(textBox.Font,
                 textBox.Font.Style ^ FontStyle.Italic);
        }

        private void Mn_Altı_Çizili_Click(object sender, System.EventArgs e)
        {
            (sender as MenuItem).Checked = !(sender as MenuItem).Checked;
            if (Mn_Altı_Çizili.Checked)
                textBox.Font = new Font(textBox.Font,
                 textBox.Font.Style | FontStyle.Underline);
            else
                textBox.Font = new Font(textBox.Font,
                 textBox.Font.Style ^ FontStyle.Underline);
        }

        private void Mn_Sola_Click(object sender, System.EventArgs e)
        {
            (sender as MenuItem).Checked = !(sender as MenuItem).Checked;
            Mn_Ortaya.Checked = false;
            Mn_Saga.Checked = false;
            textBox.TextAlign = HorizontalAlignment.Left;
        }

        private void Mn_Ortaya_Click(object sender, System.EventArgs e)
        {
            (sender as MenuItem).Checked = !(sender as MenuItem).Checked;
            Mn_Sola.Checked = false;
            Mn_Saga.Checked = false;
            textBox.TextAlign = HorizontalAlignment.Center;
        }

        private void Mn_Saga_Click(object sender, System.EventArgs e)
        {
            (sender as MenuItem).Checked = !(sender as MenuItem).Checked;
            Mn_Ortaya.Checked = false;
            Mn_Sola.Checked = false;
            textBox.TextAlign = HorizontalAlignment.Right;
        }

 
        private void Menu_Tıklandı(object sender, System.EventArgs e)
        {
            int boyut;
            boyut = int.Parse((sender as MenuItem).Text);
            textBox.Font = new Font(textBox.Font.FontFamily,
                                 boyut,
                                 textBox.Font.Style);
        }

        private void Mn_Kac_Kelime_Var_Click(object sender, EventArgs e)
        {
            string metin = textBox.Text.Trim();

            string[] tumKelimeler = metin.Split(' ');
            int kelimesayisi = 0;
            for (int i = 0; i < tumKelimeler.Length; i++)
            {
                if (tumKelimeler[i].Trim() != "")
                    kelimesayisi++;
            }
            MessageBox.Show("Bu metin " + kelimesayisi + " Adet kelimeden oluşmaktadır. ",
                                                          "Bilgi", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }

        private void Mn_Tam_Ekran_Click(object sender, EventArgs e)
        {
            this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
        }

        private void Mn_Normal_Click(object sender, EventArgs e)
        {
            this.WindowState = System.Windows.Forms.FormWindowState.Normal;
        }

        private void Mn_Simge_Click(object sender, EventArgs e)
        {
            this.WindowState = System.Windows.Forms.FormWindowState.Minimized;
        }

        private void Mn_Yuzde_Elli_Click(object sender, EventArgs e)
        {
            //bu özellik tam ekran aktif iken çalışmaz
            this.Size = new Size(Convert.ToInt32(this.Width * 0.5), Convert.ToInt32(this.Height * 0.5));
        }

        private void Menu_Kontrolleri_Load(object sender, EventArgs e)
        {
            int i;
            for (i = 8; i <= 20; i += 2)
                Mn_Font_Boyutu.MenuItems.Add(i.ToString(), new EventHandler(Menu_Tıklandı));

            textBox.Text = "C# Programlama Dili (si şarp şeklinde telaffuz edilir), Microsoft'un geliştirmiş olduğu" +
"yeni nesil dilidir. Yine Microsoft tarafından geliştirilmiş " +
".NET Teknolojisi için geliştirilmiş dillerden biridir." +
"Microsoft tarafından geliştirilmiş olsa da ECMA ve ISO standartları altına alınmıştır." +
"C programlama dilinde bir tamsayı değişkeni 1 atrırmak için ++ soneki kullanılır" +
" C++ dili adını, C diliyle Nesneye Yönelimli Programlama yapabilmek " +
" için eklentiler (C With Classes) almıştır. " +
"Benzer şekilde C++ diline yeni eklentiler yapılarak ((C++)++) bir adım" +
" daha ileriye götürülmüş ve tamamen nesneye yönelik tasarlanmış C# dilinin" +
" isimlendirilmesinde, + karakterlerinin birbirlerine yakınlaşmış hali ve" +
" bir melodi anahtarı olan C# Major kullanılmıştır." +
"Bu dilin tasarlanmasına Pascal, Delphi derleyicileri ve J++ programlama " +
"dilinin tasarımlarıyla bilinen Anders Hejlsberg liderlik etmiştir." +
"Birçok alanda Java'yı kendisine örnek alır ve C# ta java gibi c ve c++" +
"kod sintaksına benzer bir kod yapısındadır. .NET kütüphanelerini kullanmak" +
"amacıyla yazılan programların çalıştığı bilgisayarlarda uyumlu bir kütüphanenin " +
"ve yorumlayıcının bulunması gereklidir. Bu, Microsoft'un .Net Framewok'u" +
"olabileceği gibi ECMA standartlarına uygun herhangi bir kütüphane ve yorumlayıcı" +
" de olabilir. Yaygın diğer kütüphanelere örnek olarak Portable.Net ve " +
" Mono verilebilir." +
"Özellikle nesne yönelimli programlama kavramının gelişmesine katkıda bulunan en " +
"aktif programlama dillerinden biridir .NET platformunun anadili olduğu bazı " +
" kesimler tarafından kabul görse de bazıları bunun doğru olmadığını savunur." +
"C#.NET orta seviyeli programlama dillerindendir. Yani hem makine diline hem " +
" de insan algısına eşit seviyededir. Buradaki orta ifadesi dilin gücünü " +
" değil makine dili ile günlük konuşma diline olan mesafesini göstermektedir." +
" Örneğin; Visual Basic.NET(VB.NET) yüksek seviyeli bir dildir. Dersek bu dilin" +
"insanların günlük yaşantılarında konuşma biçimine yakın şekilde yazıldığını " +
" ifade etmektedir. Dolayısı ile buradan yola çıkarak VB.NET, C#.NET'ten daha" +
"güclü bir dildir diyemeyiz. Programın çalışması gereken bilgisayarlarda " +
"framework kurulu olması gerekmektedir(Win7 ve Vista'da framework kuruludur)" +
"" +
"" +
"yazı:http://tr.wikipedia.org/wiki/C_Sharp_(programlama_dili)";
        }
    }
}

UYGULAMAYI İNDİR

C Sharp Form Uygulamalar Kısayol Oluşturma Programı




KONU : C Sharp ( C# ) form uygulamalar Adresi girilen bir programın veya bir dosyanın kısa yolunu oluşturma, çalışan uygulamının kısa yolunu masaüstüde oluşturma






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;
using System.IO;

namespace C_Sharp_Form_Masaustu_Kisa_Yol_Olusturma
{
    public partial class Form1 : Form
    {
        private System.Windows.Forms.Button btnShortCut;
        private System.Windows.Forms.Button btnProgramShortCut;
        private System.Windows.Forms.TextBox txtName;
        private System.Windows.Forms.TextBox txtPath;
        private System.Windows.Forms.TextBox txtProgramName;
        private System.Windows.Forms.GroupBox groupBox1;
        private System.Windows.Forms.GroupBox groupBox2;
        private System.Windows.Forms.Label label2;
        private System.Windows.Forms.Label label1;
        private System.Windows.Forms.Label label3;

        public Form1()
        {
            InitializeComponent();
        }

        private void btnShortCut_Click(object sender, EventArgs e)
        {
            //oluşturmak istediğiniz kısa yolun bağlantı ismini ve kısa yolun 

            //açacağı dosyanın adresini yazın. 

            if (txtName.Text.Trim() == "")
                MessageBox.Show("Kısayol ismi girmelisiniz.", "Uyarı", 
                                              MessageBoxButtons.OK, MessageBoxIcon.Warning);
            else if (txtPath.Text.Trim() == "")
                MessageBox.Show("Kısayol oluşturulacak dosyanın adresini girmelisiniz.",
                                         "Uyarı", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            else
                appShortcutToDesktop(txtName.Text.Trim(), @txtPath.Text.Trim());
            //örnek:  appShortcutToDesktop("application",@"D:\FK\FK WEB SAYFAM\app_data");
        }

        private void btnProgramShortCut_Click(object sender, EventArgs e)
        {
            //sadece kısayolun isminiz girmeniz yeterli

            if (txtProgramName.Text.Trim() == "")

                MessageBox.Show("Kısayol ismi girmelisiniz.", "Uyarı", 
      MessageBoxButtons.OK, MessageBoxIcon.Warning);

            else

                appShortcutToDesktop(txtProgramName.Text.Trim());

            //örnek:   appShortcutToDesktop("application");
        }

        /// Herhangi bir programın masaüstüne kısayolunu oluşturma 

        private void appShortcutToDesktop(string linkName, string path)
        {
            string deskDir = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
            try
            {
                using (StreamWriter writer = new StreamWriter(deskDir + "\\" + linkName + ".url"))
                {
                    if (path.Trim() != "")
                    {
                        string app = path;

                        writer.WriteLine("[InternetShortcut]");

                        writer.WriteLine("URL=file:///" + app);

                        writer.WriteLine("IconIndex=0");

                        string icon = app.Replace('\\', '/');

                        writer.WriteLine("IconFile=" + icon);

                        writer.Flush();
                    }
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Geçersiz İşlem", "Uyarı", 
     MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
      
        /// Eğer yaptığınız c sharp kendi kısa yolunu yapsın istiyorsanız... 
 
        private void appShortcutToDesktop(string linkName)
        {
            string deskDir = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);

            try
            {
                using (StreamWriter writer = new StreamWriter(deskDir + "\\" + linkName + ".url"))
                {
                    string app = System.Reflection.Assembly.GetExecutingAssembly().Location;

                    writer.WriteLine("[InternetShortcut]");

                    writer.WriteLine("URL=file:///" + app);

                    writer.WriteLine("IconIndex=0");

                    string icon = app.Replace('\\', '/');

                    writer.WriteLine("IconFile=" + icon);

                    writer.Flush();
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Geçersiz İşlem", "Uyarı",
      MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

        private void btnAc_Click(object sender, EventArgs e)
        {
            OpenFileDialog ac = new OpenFileDialog();

            ac.Filter = " Metin Dosyaları |*.txt| Bütün Dosyalar|*.*";


            if (ac.ShowDialog() == DialogResult.OK)
            {
                StreamReader oku = new StreamReader(ac.FileName);

                //Dosyanın içini okumak için streamreader kullanılır

                txtPath.Text = oku.ReadToEnd();

                oku.Close();

                //Dosyanın adresini text te yazdırma

                txtPath.Text = ac.FileName;   
            }
        }

    }
}


UYGULAMAYI İNDİR

C Sharp Form Uygulamalar Sistem Saati ve Geriye Sayan Saat Uygulaması



KONU : C Sharp ( C# ) form uygulamalar sistem saatini gösterme, geriye doğru sayan saat yapımı, c# timer kullanımı, c# saat uygulaması, c# try catch blok örnekleri.





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 c_sharp_geriye_dogru_sayma
{
    public partial class Form1 : Form
    {
        DateTime zaman;

        int geriSayanZamanSaniye;

        int i = 1;

        int saat, dakika, saniye;
        
        public Form1()
        {
            InitializeComponent();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            saatiGuncelle();//timer1 başlatıldığında sistem saati güncellesin 

            geriSayanZamanSaniye -= 1; //gerisayım saatini bir azalt

            //text kutularında kalan zamanı göster

            txtSaat.Text = (geriSayanZamanSaniye / 3600).ToString("00");

            txtDakika.Text = ((geriSayanZamanSaniye % 3600) /60).ToString("00");

            txtSaniye.Text = (geriSayanZamanSaniye % 60).ToString("00");

            //Zaman tamamlandıysa timer ı durduralım.

            if (geriSayanZamanSaniye == 0)
                timer1.Stop(); //timerı durdur fonksiyonu

            lblGeriSayanSaat.Text = txtSaat.Text + ":" + txtDakika.Text + ":" + txtSaniye.Text;
        }

        private void btnBaslat_Click(object sender, EventArgs e)
        {
            //etiketimizdeki saati güncellemesini istiyorum

            //amacım sistem saatini görmek

            saatiGuncelle();

            //Geri sayım saatini güncellemek için 

            //saat,dakika ve saniye textbox larındaki değerleri ilk önce kontrol et

            //eğer girilen değer doğru ise işleme devam et

            bool sonuc = geriSayimSaatiniKontrolEt();

            if (sonuc)
            {

                geriSayanZamanSaniye = saat * 60 * 60 + dakika * 60 + saniye;

                timer1.Interval = 1000;

                timer1.Start();
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            saatiGuncelle();

            txtSaat.Text = "01";

            txtDakika.Text = "00";

            txtSaniye.Text = "00";

        }

        private void saatiGuncelle()
        {
            //sistem saatini götüntüleme

            zaman = DateTime.Now;

            lblSaat.Text = zaman.ToLongTimeString();
        }

        private bool geriSayimSaatiniKontrolEt()
        {

            //geri sayım için girilen saat, dakika ve saniye bilgilerini kontrol edelim

            // eğer bir hata varsa programımızın hata yapmaması için uyarı verelim


            try
            {
                //ilk önc girilen değerler rakam mı bunu kpnrol edelim
                
                saat = int.Parse(txtSaat.Text);

                dakika = int.Parse(txtDakika.Text);

                saniye = int.Parse(txtSaniye.Text);
                
                //Şimdi de giriln değerler doğru aralıklarda mı onu kontrol edelim

                if (saniye < 60 && dakika < 60 && saniye > -1 && dakika > -1 && saat > -1)
                    return true;
                else
                {
                    //Eğer bir hata varsa timerı durdurup uyarı verelim.

                    timer1.Stop();

                    return false;
                }
            }
            catch (Exception)
            {
                timer1.Stop();
  
                MessageBox.Show("Değerlerden birinde hata var", "Hata", 
                                                MessageBoxButtons.OK, MessageBoxIcon.Error);
                
                return false;
            }
        }
    }
}

UYGULAMAYI İNDİR

8 Ocak 2014 Çarşamba

C Sharp Form Uygulamalar Error Provider Kullanımı



KONU : C Sharp Uygulamalar - C Sharp ( C# ) form uygulamalar error provider kullanımı. Textbox kutusuna yanlış bir değer girildiğinde hatanın sebebini göstermek için form da error provider kullanımı.
ETİKETLER: c sharp error - c sharp error provider - c# error provider - c sharp error provider kullanımı - c sharp keypress - c# keypress





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 KeyPressDurumu
{
    public partial class Form1 : Form
    {
        string asilYazi;
        int girilenSayi;

        public Form1()
        {
            InitializeComponent();
            asilYazi = txtKutu.Text;
        }

        private void txtKutu_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (SayiMi(e.KeyChar) == false && (Keys)e.KeyChar != Keys.Back)
            {
                errorProvider.SetError(txtKutu, "Bu Alana Sayı Girmelisiniz.");
                e.Handled = true;
            }
            else
            {
                errorProvider.Clear();
            }
        }

        bool SayiMi(char harf)
        {
            try
            {
                Convert.ToInt32(harf.ToString());
                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }

        private void btnKaydet_Click(object sender, EventArgs e)
        {
            girilenSayi = int.Parse(txtKutu.Text);
        }

        private void txtKod_Validating(object sender, CancelEventArgs e)
        {
            if (string.IsNullOrEmpty(txtKod.Text) || txtKod.Text.Trim().Equals("")) return;

            char ilkKarakter = txtKod.Text[0];

            if (Char.IsLetter(ilkKarakter) != true || txtKod.Text.Length != 5)
            {
                errorProvider.SetError(txtKod, "Firma Kodu 5 karakterden oluşmalı ve ilk karakteri kesinlikle bir harf olmalı");
                e.Cancel = true;
            }
            else
                errorProvider.Clear();
        }

        private void btnKaydetİlerle_Click(object sender, EventArgs e)
        {
            MessageBox.Show("diğer bölümün formu hazır olmadığından ilerleyemeyeceksiniz....");
        }
    }
}


UYGULAMAYI İNDİR

12 Haziran 2013 Çarşamba

C Sharp Uygulamalar Regex ile e-mail Adresi Kontrolü Yapma



KONU : C Sharp Uygulamalar - C Sharp ( C# ) form uygulamalar regex sınıfını kullanarak textbox dan girilen eümail adresinin e-mail adresi formatında olup olmadığını kontrol etme.
ETİKETLER: c sharp regex | c sharp match | csharp regex match | c# regex match | c# regex | csharp regex is match | regex ismatch c# | regex ismatch | regex ismatch email | c# regex ismatch email | c sharp regex ismatch email | regex ismatch c# example | regex ismatch c# examples | regex.ismatch c# email | c# regular expression regex.ismatch | c# regular expression | c sharp regular expression




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;
using System.Text.RegularExpressions;

namespace C_sharp_email_Regex_Control
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private string CheckEmailString(string girilenDeger)
        {
            if (girilenDeger == "")
            {
                return "Girilen değer boş olamaz.";
            }
            

            //textbox dan girilen mail adresininin mail adresi formatında olup olmadığını kontrol eden biçimi oluşturalım

            string bicim = @"^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9_\-\.]+\.[a-zA-Z]{2,}$";

            //Regex sınıfından oluşturduğumuz biçim değişkenini parametre vererek bir örnek oluşturalım

            Regex regex = new Regex(bicim);

            //Regex nesnesini ismatch metodunu kullanarak girilen adresi kontrol edelim

            if (!regex.IsMatch(girilenDeger))
            {
                //Eğer girilen adres oluşturduğumuz biçime uymuyorsa geçersiz adrestir.

                return "Girilen e-mail adresi geçersiz.";
            }
            
            //Eğer girilen adres oluşturduğumuz biçime uyuyorsa bu adres geçerlidir

            return "Girilen e-mail adresi geçerli.";
        }

        private void btnKontrolEt_Click(object sender, EventArgs e)
        {
            string value = CheckEmailString(txtEmailAdres.Text);

            //girilen adresin durumunu bilgi mesajı olarak gösterelim.

            MessageBox.Show(value, "Bilgi", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
    }
}

  

UYGULAMAYI İNDİR

1 Haziran 2013 Cumartesi

C Sharp Uygulamlar Sınıf Oluşturma - Fields ve Properties Tanımlama - Listbox Listeleme - Override Kullanımı



KONU : C Sharp Uygulamalar - C Sharp ( C# ) Kişiler sınıfın oluşturma ve fields & properties ekleme. ArrayList sınıfı kullanarak sınıf nesnelerini listeleme ve saklama. ArrayList elemanlarını ait oldukları sınıfa dönüştürme (Cast). Listbox ile eklenen kişileri listeleme. C sharp Overide kullanımı.
ETİKETLER: c sharp field - c sharp field declaration - c sharp properties - c sharp field property - c sharp access modifier - c sharp field access modifier - c# access modifier - c# field - c# field nedir - c# fields - c# field and property - csharp class - csharp class örnekleri - csharp class tanımlama - csharp class oluşturma - csharp class kullanımı - csharp class constructor - c sharp sınıf tanımlama - c sharp sınıf oluşturma - c sharp alan tanımlama - c sharp listbox - c sharp listbox ile listeleme.





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 c_sharp_sinif_uygulama
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        //nesneleri depolamak için arraylist tipide bir liste oluştur

        System.Collections.ArrayList kisiListes;

        private void Form1_Load(object sender, EventArgs e)
        {
            //kisiListesinin bir örneğini oluştur.

            kisiListesi = new System.Collections.ArrayList();
        }

        private void btnKaydet_Click(object sender, EventArgs e)
        {
            //Eğer ad veya soyad dan biri girilmemiş ise uyarı ver ve 
            //işlem yapmadan geri dön

            if (txtIsim.Text.Trim() == "" || txtSoyisim.Text.Trim() == "")
            {
                MessageBox.Show("ad veya soyad boş bırakılmış. ");
                return;
            }

            //eğer ad ve soyada bir değer girilmiş ise devam et
            //kişiler sınıfından bir örnek oluştur(instance)

            Kisiler kisi = new Kisiler();

            kisi.Ad = txtIsim.Text;
            kisi.Soyad = txtSoyisim.Text;

            //oluşturulan kişi nesnesini listeye ekle

            kisiListesi.Add(kisi);

            ListeyiDoldur();
        }

        private void ListeyiDoldur()
        {
            //listbox da varolanların hepsini sil

            lstKisiler.Items.Clear();

            //kişiler listesinde olanları listBox a yeniden ekle

            for (int i = 0; i < kisiListesi.Count; i++)
            {
                lstKisiler.Items.Add(kisiListesi[i]);
            }
        }

        private void lstKisiler_DoubleClick(object sender, EventArgs e)
        {
            //listBox da bir isim çift tıklanırsa onu messageBox ile göster

            int seciliIndeks = lstKisiler.SelectedIndex;

            if (seciliIndeks < 0) return;

            Kisiler kisi = (Kisiler)lstKisiler.Items[seciliIndeks];

            MessageBox.Show("Ad : "+kisi.Ad+"\nSoyad : "+kisi.Soyad);
        }

        private void btnTemizle_Click(object sender, EventArgs e)
        {
            foreach (Control item in this.Controls)
            {
                if (item is TextBox)
                {
                    item.Text = "";
                }
            }
        }
    }

    class Kisiler
    {
        #region Fields

        string ad;//Field

        string soyad;//Field 

        #endregion

        #region Propeties

        public string Ad
        {
            get
            {
                return ad.ToUpper();
            }
            set
            {
                ad = value;
            }
        }

        public string Soyad
        {
            get
            {
                return soyad.ToUpper();
            }
            set
            {
                soyad = value;
            }
        }

        #endregion

        public override string ToString()
        {
            return ad.ToUpper() + "  " +soyad.ToUpper();
        }
    }
}


19 Mayıs 2013 Pazar

C Sharp Uygulamalar Ceza Hesaplama Programı - DateTime Sınıfı İle Tarih İşlemleri



KONU : C Sharp Uygulamalar - C Sharp ( C# ) form ceza hesaplama programı. Datetime sınıfını kullanarak tarihler arası fark hesaplama. Foreach döngüsü kullanarak Textbox kontrollerinin özelliklerini güncelleme. Math sınıfını kullanarak yuvarlama yapma.





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 C_Sharp_Form_Tarih_islemleri_Hesaplama
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            textboxTemizle();//textbox kutularını temizleme
           
            txtCeza.Enabled = false;
            
            // ceza kutusunu sadece program kullanabilir
            
            txtToplam.Enabled = false;
            
            // toplam kutusunu sadece program kullanabilir
        }

        /// Hesaplama butonuna tıklandığında gerşekleştirilecek işlemeler
        private void btnHesapla_Click(object sender, EventArgs e)
        {
            if (txtName.Text.Trim() == "")
            {
                MessageBox.Show("Lütfen bir malzeme ismi giriniz.", "Uyarı");
                return;//boş bir değer girildiyse işlem yapmadan çık
            }
            else if (txtTutar.Text.Trim() == "")
            {
                MessageBox.Show("Lütfen bir malzeme tutarını giriniz.", "Uyarı");
                return;//boş bir değer girildiyse işlem yapmadan çık
            }

            //datetime değişkenlerini tanımlama

            DateTime son_Odeme_Tarihi, odendime_Tarih;
            
            double fiyat = 0, fark = 0, ceza = 0;

            //ceza miktarını hesaplama. Try catch bloğu ile girilen tutar eğer 
            //tam sayı değilse oluşacak (exception) hatalar önlenir.

            try
            {
                fiyat = long.Parse(txtTutar.Text);
                son_Odeme_Tarihi = dateSonOdemeTarihi.Value;
                odendime_Tarih = dateOdemeTarihi.Value;

               TimeSpan ts =  odendime_Tarih - son_Odeme_Tarihi ;
               fark = Math.Round(ts.TotalDays);
            }
            catch (Exception hata)
            {
                //Hata verdirecek messagebox kutusu. Başlığında HATA yazsın. Bir tan Ok
                //butonu olsun ve icon olarak error ikonunu kullanmasını istiyorum. 
                
                MessageBox.Show("Bilgiler hatalı yazılmış." + hata.Message,"HATA",MessageBoxButtons.OK,MessageBoxIcon.Error);
            }


            //eğer ceza varsa bunu kullanıcıya göster
            
            if (fark > 0)
            {
                ceza = fark * fiyat * 2 / 1000;
                txtCeza.Text = ceza.ToString("#,#");
                txtToplam.Text = (fiyat + ceza).ToString("#,#");
             
                MessageBox.Show(fark + " gün geç ödendi." + txtCeza.Text + " TL ceza ödeyecek","GEç ödenme yaptınız. Ceza miktarı...");
            }
            else
                if (fark == 0) // Eğer bir ceza yoksa  bunu göster
                {
                    ceza = 0;
                    txtCeza.Text = "0";
                    txtToplam.Text = fiyat.ToString("#,#");
                   
                    MessageBox.Show("Tam gününde ödendi","Teşekürler");
                }
                else //
                {
                    ceza = 0;
                    txtCeza.Text = ceza.ToString("#,#");
                    txtToplam.Text = (fiyat - ceza).ToString("#,#");
                    
                    MessageBox.Show(fark + " gün erken ödendi." + 500 + " TL indirimli ödeyecek","Teşekürler. Erken Ödeme yaptınız.");
                }
        }

        /// Yeni hesaplama butonuna tıklama işlemi
        private void btnYeniHesaplama_Click(object sender, EventArgs e)
        {
            //Yeni hesaplama butonuna tıklandığında tüm textbox kutucuklarının text
            //değerini temizleyecek

            textboxTemizle();
        }

        /// Textbox kutularını yenileme ve temizleme işlemini yapan metot
        private void textboxTemizle()
        {
            // Textbox ların hepsinin Text değerini temizlemek için foreach ile 
            // form kontrollerin hepsini kontrol et. Textbox olan kontrollerin text
            // değerini string.Empty olarak güncelle

            foreach (Control item in this.Controls)
            {
                if (item is TextBox)
                    (item as TextBox).Text = string.Empty;
            }

            int sıfırla = 0;
            
            txtToplam.Text = sıfırla.ToString("0.00");
            
            txtCeza.Text = sıfırla.ToString("0.00");
        }

   
    }
}


UYGULAMAYI İNDİR

14 Mayıs 2013 Salı

C Sharp Form Uygulamalar Onluk Tabandan İkilik Taban Çevirme - Onluk Tabandan 2 - 9 Arasındaki Tabanlara Çeviren Program



KONU : C Sharp Uygulamalar - C Sharp ( C# ) form onluk tabandan ikilik tabana çevirme programı. Onluk tabandan 2 - 9 arasındaki bütün tabanlara çeviren program. 10 luk tabandan istenilen tabana çevirme işlemleri.





UYGULAMAYI İNDİR



using System;
using System.Windows.Forms;  
using System.Text;     

namespace C_Sharp_Form_Onluktan_Secilen_Tabanlara_Cevirme
{
    public partial class Form1 : System.Windows.Forms.Form
    {
        int cevrilecekTaban;

        public Form1()
        {
            // Sistemin kendi oluşturduğu elemanların ilk ayarları yapalım

            InitializeComponent();
        }

        // form decimal to all (ikilik, üçlük...diğer  tabanlara çevirme)

        private void Form1_Load(object sender, EventArgs e)
        {
            //çevirmek istediğim tabanları taban nesnesine ekliyorum.
            //bu program 2 den 9 a kadar olan bütün tabanlara çevirme yapmasını istiyorum.

            for (int i = 2; i < 11; i++)
            {
                this.taban.Items.Add(i);
            }

            FormKontrolleriniDoldur();
        }

        // Girilen bütün karakterler rakam mı diye kontrol eden metot.

        public static bool butunHepsiRakamMi(string deger)
        {
            string rakam = deger.Trim();
            if (rakam.Length == 0)
            {
                return false;

                //Eğer herhangi bir karakter girilmediyse false döndürsün
            }
            for (int indeks = 0; indeks < rakam.Length; indeks++)
            {
                if (!Char.IsDigit(rakam[indeks]))
                {
                    return false;

                    //Eğer girilen karakterlerden herhangi biri rakam değilse false döndürsün
                }
            }

            return true;
            //Eğer girilen karakterlerin hepsi rakam ise true döndürecek
        }

        // Çevir butonuna tıklandığında girilen değer seçilen tabana çevrilecek.

        private void btnCevir_Click(object sender, System.EventArgs e)
        {
            //herhangi bir taban seçili mi kontrolü yapalım
            //eğer bir taban değeri seçilmediyse uyarı mesajı verelim

            if (taban.SelectedIndex<0)
            {
                MessageBox.Show("Bir Taban Değeri Seçmelisiniz", "Uyarı", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                
                // uyarı mesajından sonra hiçbir işlem yapmadan bu metodu sonlandırmak için
                // return kullanıyorum.
                return;
            }

            StringBuilder yeniDeger = new StringBuilder();
          
            string cevrilecekDegerString;
            
            int cevrilecekDeger=0;
            
            int kalan;

            // Girilen karakterlerin hepsinin rakam olup olmadığını kontrol edelim
            
            cevrilecekDegerString = this.girilenText.Text;

            if (butunHepsiRakamMi(cevrilecekDegerString))
            {
                cevrilecekDeger = Int32.Parse(cevrilecekDegerString);
            }
            else
            {
                //Eğer girilen karakterlerin hepsi rakam değilse bu mesajı gösterelim
                
                MessageBox.Show("Sadece rakam girmelisiniz", "Uyarı", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                
                girilenText.Focus();
            }



            // Taban combobox unda seçilen değerin doğru olup olmadığını kontrol edelim
           
            if (!butunHepsiRakamMi(cevrilecekTaban.ToString()))
            {
                MessageBox.Show("Bir Taban Değeri Seçmelisiniz", "Uyarı", MessageBoxButtons.OK, MessageBoxIcon.Warning);
              
                girilenText.Focus();
            }

            // decimal olan değeri combobox tan seçilen taban değerine çevirelim
            if (cevrilecekDeger > 0)
            {
                do
                {
                    kalan = cevrilecekDeger % cevrilecekTaban;

                    cevrilecekDeger = cevrilecekDeger / cevrilecekTaban;

                    yeniDeger.Insert(0, kalan);

                } while (cevrilecekDeger > 0);
            }

            // Decimal dan seçilen tabana çevrilmiş değeri sonuç textbox ına yazdıralım
          
            this.sonucText.Text = yeniDeger.ToString();
            
            //yaptığımız işleme göre etiketi yeniden düzenleyelim
        }

        private void taban_SelectedIndexChanged(object sender, EventArgs e)
        {
            FormKontrolleriniDoldur();
        }

        private void FormKontrolleriniDoldur()
        {
            try
            {
                cevrilecekTaban = Convert.ToInt32(taban.SelectedItem.ToString());
            }
            catch (Exception)
            {
                cevrilecekTaban = 2;
                taban.SelectedIndex = 0;
            }


            switch (cevrilecekTaban)
            {
                case 2: label2.Text = "İkilik Tabandaki Değer"; break;
                case 3: label2.Text = "Üçlük Tabandaki Değer"; break;
                case 4: label2.Text = "Dötlük Tabandaki Değer"; break;
                case 5: label2.Text = "Beşlik Tabandaki Değer"; break;
                case 6: label2.Text = "Altılık Tabandaki Değer"; break;
                case 7: label2.Text = "Yedlik Tabandaki Değer"; break;
                case 8: label2.Text = "Sekizlik Tabandaki Değer"; break;
                case 9: label2.Text = "Dokuzluk Tabandaki Değer"; break;
                case 10: label2.Text = "Onluk Tabandaki Değer"; break;
                default: label2.Text = "İkilik Tabandaki Değer"; break;
            }

            btnCevir.Text = "Onluk tabanda girilen değeri " + label2.Text + "e çevir";
        }
    }
}
  


UYGULAMAYI İNDİR

28 Nisan 2013 Pazar

C Sharp Uygulamalar Forma Eklenen Butonları Dinamik Olarak Kontrol Etme



KONU : C Sharp Uygulamalar - C Sharp ( C# ) Form uygulamaları form üzerine eklenen butonları dinamik olarak kontrol etme olay bağlama olayları dinamik olarak kontrol etme.





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 C_Sharp_Buton_Kontrolleri
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        //Form üzerinde groupbox1 içine eklediğimiz bütün butonları bu 

        //listenin içinde tutacağız

        List < Button > formGroupbox1Butonlar = new List< Button >();

        private void Form1_Load(object sender, EventArgs e)
        {
            //Form load kısmında formdaki groupbox1 içindeki bütün kontrolleri

            //listeye ekle

            formGroupbox1Butonlar.Clear();

            foreach (Control item in groupBox1.Controls)
            {
                if (item is Button)
                {
                    formGroupbox1Butonlar.Add(item as Button);
                }
            }

            // şimdi bütün butonların click eveti olduğunda aynı metodu çağırmasını

            //istiyorum. Çünkü hangi butona basılırsa textbox içine o butonun 

            //text değerini yazılmasını istiyorum

            for (int i = 0; i < formGroupbox1Butonlar.Count; i++)
            {
                formGroupbox1Butonlar[i].Click += new EventHandler(Button_Click);
            }
        }

        void Button_Click(object sender, EventArgs e)
        {
            // Burada hangi buton tıklanırsa onu kontrol edebileceğim

            Button clickedButton = sender as Button;

            //şimdi tıklanan butonun text değerini  textboxa yazdırıyorum

            textBox1.Text += clickedButton.Text;

            //ayrıca burada tıklanan butonun bütün public özellikleri ile

            //oynayabiliriz. Mesela butonun visible özelliğini false yapabiliriz

            //clickedButton.Visible = false;


            // Ya da butonun arka plan rengini değiştirebiliriz

            clickedButton.BackColor = Color.Lime;

            // Başka olaylarda bağlayabiliriz. Örneğin

            clickedButton.BackColorChanged += new EventHandler(clickedButton_BackColorChanged);
        }

        void clickedButton_BackColorChanged(object sender, EventArgs e)
        {
            MessageBox.Show((sender as Button).Text + " Nolu butonun rengi değişti.");
        }


    }
}


UYGULAMAYI İNDİR

13 Nisan 2013 Cumartesi

C Sharp Uygulamlar Herhangi bir Değer Türünü Null Olarak Tanımlama



KONU : C Sharp Uygulamalar - C Sharp ( C# ) Herhangi bir değer türü null olarak tanımlayabilme. int, char , bool , double gibi değer türünde olan değişkenleri null olarak tanımlama.





UYGULAMAYI İNDİR



Herhangi bir değer türü null türü için kullanılması için  tipten sonra  ? işareti kullanılması gerekir. 

Böylelikle değer türünde tanımladığımız değişkenin null olup olmadığını kontrol edebiliriz 


            int? sayi = 10000; 
            double? pi = 3.14; 
            bool? SayiMi = null; 
            char? harf = ''; 

bu şekilde tanımladığımızda işlem yaparken null kontrolü yapmalıyız.

Çünkü eğer değer türü null atanmış ve null olarak kalmışsa exception hatası oluşur. 

Mesela sayi değişkenini null olarak oluşturalım. 

int? sayi = null; 

bunu yeni bir değişkene atama işlemleri yapalım. 

int? sayi = null; 

int yenisayi = sayi;   

yenisayi  derlenemez. çünkü int? tipinde int tipine direkt atanamaz hatası verir 

Bunu için ilk önce int tipine dönüştürmemiz gerekir : 

int? sayi = null; 

int yenisayi = (int)sayi; 

şimdi program derlenebilecek ama çalışma anında sayi değişkeni null olduğunda yine hata oluşacak.

Bu hatanın  oluşmaması için null kontrolü yapmak gerekiyor. 

Bunu da aşağıdaki gibi iki farklı yöntem ile yapabiliriz. 

Böylece çalışma zamanında exception hatasını almayız. 


            int? sayi = null; 

 1.)           if (sayi.HasValue) 
            { 
                MessageBox.Show(sayi.Value.ToString()); 
            } 
            else 
            { 
                MessageBox.Show("Tanımsız"); 
            } 

  2.)          if (sayi != null) 
            { 
                MessageBox.Show(sayi.Value.ToString()); 
            } 
            else 
            { 
                MessageBox.Show("Tanımsız"); 
            } 
    

 Yukarıda sadece int için örnekler verdim. Bu en üstteki bahsettiğim türler içinde yapılabilir.

Null atama işlemi diziler içinde yapılabilir. Örnek olarak: 

Yine ? işartini kullanarak dizi tanımlarken de değişkeni null atanabilir yapmış oluyoruz. 

            int?[] sayilar = new int?[7]; 

            string mesaj = ""; 

            sayilar[0] = 123; 
            sayilar[1] = 3432; 

            for (int i = 0; i < sayilar.Length; ++i) 
            { 

                mesaj += (i + (sayilar[ i ] != null ? ". Değer " : ". Null ") + sayilar[ i ] + "\n" ); 

            } 
            MessageBox.Show(mesaj); 

Bu örnekte sayilar[ i ] değişkemi null olsa da bir exception oluşturmaz. Çünkü string tipine çevirdiğinden null değeri direkt null string değeri olarak kabul edilir.


UYGULAMAYI İNDİR