Ürfet Demirtaş
Bozkırın yağız programcısı...

ANASAYFA | HAKKIMDA | ASP.NET WEB FORM | C# | BİLGİ GÜVENLİĞİ | LINQ | T-SQL | ASP.NET MVC | GENEL | İLETİŞİM
 
 
MAKALE ARA

C# Extension Metot Nedir? Nasıl Kullanılır?

 Extension method, kelime anlamı ile "Genişletilebilir Metod" anlamına gelmektedir. 
.NET 3.0 güncellemesi ile kullanıma girmiştir.
Extension metodlar static class içerisinde static olarak tanımlanmaktadır. 
Fonksiyon parametresinde "this" kullanma mecburidir, Extension metod olduğunu belirtmektedir.

Örnek Kodlama;

public static class MyExtension    
{
   public static int ConvertToInt(this string obje, int number)
   {
       return Convert.ToInt32(obje) * number;
   }
}

Kullanımı;

string obje = "25";
int number = obje.ConvertToInt(8);
 
Detay [..]

C# OOP Terimleri

Class: Uygulamamızda sıklıkla kullanacağımız metod ve değişkenleri bir çatı altında toplayarak tekrar yazmaya gerek kalmadan kullanmak amacı ile bu tip tanımlamaları Class yapıları içinde tanımlayabiliriz. Project menüsünden Add Class seçeneği ile projeye class eklenebilir.

Metod: Class’ların içerisinde belli bir işlemi gerçekleştiren kod yapılarına denir.

Constructor (yapıcı metod) : Sınıflardan nesne türetilirken new ifadesi ile çalıştırılan ve sınıf ile aynı adı taşıyan metodlara denir. Nesne kullanıma hazırlanırken hazırlık işlemleri yapmak için kullanılır.

Destructor (yıkıcı metod): Nesne hafızadan silinirken çalıştırılır. Metod isminin başına ~ eklenerek kullanılır.

Property (özellik): Hazırladığımız classlar içinde özellik kullanarak sınıflar içine değer gönderip değerleri okuyabiliriz. set ve get olmak üzere 2 tür property vardır. Set ile değer gönderilir, get ile değer alınır.

Auto-Implemented Property: Property tanımlama kodlarını kısaltabiliriz. .Net’in sunduğu kolaylığa göre kod satırları içine prop yazarak 2 defa Tab tuşuna bastığımızda;
public int MyProperty { get; set; }
otomatik olarak yazılacaktır. Üzerinde değişiklik yaparak kullanabiliriz.

Erişim Belirteçleri (Access Modifiers): Class içindeki metod ve değikenlere başka formlardan erişilmesini sağlamak, yasaklamak gibi işlemler için kullanılır. 6 adet erişim belirteci vardır:

  • public: public belirleyicisinin kullanıldığı metod ve parametreye erişim serbesttir.
  • protected: metod ve parametreye sadece bulunduğu proje içerisinde tanımlandığı sınıf içerisinden erişilir.
  • internal: metod ve parametreye sadece bulunduğu proje içerisinden ve bu sınıftan türetilmiş sınıflardan erişilir.
  • protected internal: metod ve parametreye sadece bulunduğu proje içerisinden ve bu namespaceden türetilmiş proje veya aynı assembly içinden erişilir.
  • private: metod ve parametreye sadece tanımlandığı sınıf içerisinden erişilir.

Field: Sınıfın ya da yapının doğrudan erişilen veri üyesidir.

Instance: Bir sınıfın başlatılmış kullanıma hazır örneğidir.

Daha fazla C# OOP Terimleri
Kaynak

Detay [..]

c# günleri gösterme

using System.Globalization;

namespace oop
{

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

        private void Form1_Load(object sender, EventArgs e)
        {
            string gun = CultureInfo.CurrentCulture.DateTimeFormat.DayNames[(int)DateTime.Now.DayOfWeek];
            MessageBox.Show(gun.ToString());
        }
    }

}

Detay [..]

Proparti get, set

    private void Form1_Load(object sender, EventArgs e)
    {          

        URFET klass = new URFET();

        klass.A = "Ürfet";
        klass.B = "DEMİRTAŞ"; 

        MessageBox.Show(klass.A.ToString() + " " + klass.B.ToString());
    }

    class URFET
    {

        private string a;
        private string b; 

        public string A
        {
            get { return a; }
            set { a = value; }
        }

        public string B
        {
            get { return b; }
            set { b = value; }

        }
    }

Detay [..]

Diziler C#

string[] a=new string[5];

a[0] = "A";
a[1] = "B";
a[2] = "C";
a[3] = "E";
a[4] = "F";

for (int i = 0; i < 5; i++)
{
    MessageBox.Show(a[i].ToString());
}

Detay [..]

Form İçerisindeki Kontrollere Dinamik Olarak Ulaşmak c#

Merhaba,

Bu makalede “Form içerisindeki kontrollere dinamik olarak nasıl ulaşabilirim?” sorusuna cevap arıyor olacağız.

Form içerisinde belli olmayan sayıda Component olduğunu ve hepsini kontrol etmek istediğinizi düşünün. Belirli sayıda da olsa, fazla miktarda Component'i Code Behind içerisinde tek tek yazmanız hiç profesyonel ve zevkli olmayacaktır.

 Biz de bugün TextBox’larımızın içerisindeki değerleri bir ListBox içerisine ekleyeceğiz. Bu durumda aklımıza birkaç çözüm daha gelebilir ama amacım biraz da Reflection ile ilgilenmek.

Makaleyi bitirdiğinizde Web veya Windows uygulamanızdaki formunuzda ne kadar Component olduğunun veya isimlerinin ne olduğunun hiçbir önemi kalmayacaktır. Çünkü istediğiniz anda istediğiniz Component'e ulaşabileceksiniz.

Hemen bir Windows Forms Application açalım (CTRL + SHIFT + N) ve formumuzu yaratalım. Ben formu şu şekilde oluşturdum:

 

NOT: using System.Reflection; satırını eklemeyi unutmayın.

 

Aşağıda yazmış olduğum fonksiyonda görüldüğü üzere tüm kontrollere Control sınıfının Controls property’si sayesinde ulaşmış oluyoruz. Ama burada tüm component’ler mevcut durumda. Dolayısıyla bizim bunları ayrıştırmamız gerekecek. 

Burada GetType()devreye giriyor. Bize döndürdüğü Type nesnesinin “Name” property’sini kullanarak bu nesnenin türünü tespit ediyoruz ve TextBox değilse sıradaki componenti çağırıyoruz.

 

protected void FindControls(Control Ctrl)

{

    foreach (Control item in Ctrl.Controls)

    {

        Type CtrlType = item.GetType();

        PropertyInfo[] PropList = CtrlType.GetProperties();

        if (CtrlType.Name != "TextBox") continue;

               

        foreach (PropertyInfo PropInfo in PropList)

        {

            if (PropInfo.Name == "Text" && PropInfo.PropertyType == typeof(String))

                LBoxTexts.Items.Add( CtrlType.InvokeMember(PropInfo.Name,

                                      BindingFlags.GetProperty, null, item, null).ToString());

 

        }

    }

}

 

Henüz işimiz bitmedi. İşe yarar component’i bulduktan sonra istemiş olduğumuz property’ye de ulaşamamız gerekiyor. GetProperties() fonksiyonu, ona vermiş olduğumuz kontrole ait tüm public property’leri getiriyor. Biz de bu listeyi kullanarak istediğimiz property’ye ulaşıyoruz ve onu işliyoruz.

 

NOT: FindControls fonksiyonuna parametre olarak formunuzu göndererek bir debug işlemi yapmanızı ve tek tek incelemenizi tavsiye ederim.  Böylece burada anlatılanları daha rahat kavrayabilirsiniz.

 

Projenin kaynak kodları:  FindingControlsWithReflection.rar (42,05 kb)

Görüşmek üzere, iyi çalışmalar.

BURAK GÖNÜLDAŞ

Detay [..]

C# GRDİVİEW SELECTİON

  private void dataGridView1_SelectionChanged(object sender, EventArgs e)

    {

        txtId.Text =

        dataGridView1.CurrentRow.Cells["MUSTERI_ID"].Value.ToString();

        TxtCariAdi.Text =

        dataGridView1.CurrentRow.Cells["CARI"].Value.ToString();

        TxtCariKod.Text =

        dataGridView1.CurrentRow.Cells["CARI_KODU"].Value.ToString();

        TxtTel.Text =

        dataGridView1.CurrentRow.Cells["TELEFON"].Value.ToString();

        TxtFax.Text =

        dataGridView1.CurrentRow.Cells["FAX"].Value.ToString();

        TxtAdres.Text =

        dataGridView1.CurrentRow.Cells["ADRES"].Value.ToString();

        TxtNot.Text =

        dataGridView1.CurrentRow.Cells["NOTE"].Value.ToString();

        TxtYetkili.Text =

        dataGridView1.CurrentRow.Cells["YETKILI"].Value.ToString();

    }

Detay [..]

C# bir form'dan diğer bir forma değer gönderme

        public ana anaform; // bi önceki formu puplic yapıyoruz.

        private void Bilgiler_Load(object sender, EventArgs e)

        {

            txtad.Text = anaform.dataGridView1.CurrentRow.Cells[1].Value.ToString();

            txtsoyad.Text = anaform.dataGridView1.CurrentRow.Cells[2].Value.ToString();

            txtcinsiyet.Text = anaform.dataGridView1.CurrentRow.Cells[3].Value.ToString();

            txtevtel.Text = anaform.dataGridView1.CurrentRow.Cells[4].Value.ToString();

            txtceptel.Text = anaform.dataGridView1.CurrentRow.Cells[5].Value.ToString();

            txteposta.Text = anaform.dataGridView1.CurrentRow.Cells[6].Value.ToString();

            txtadres.Text = anaform.dataGridView1.CurrentRow.Cells[7].Value.ToString();

            txtil.Text = anaform.dataGridView1.CurrentRow.Cells[8].Value.ToString();

        }

Detay [..]

C# Windows Formun, boyutunu süzülerek büyültme

        private void Button1_Click(object sender, EventArgs e)


       
{

            tmrAra.Enabled = true; // timer'i başlatıyoruz.

        }

        private void tmrAra_Tick(object sender, EventArgs e) // timer

        {

            if ( grpara.Visible == false)

            {

                 for (int i = 0; i < 10; i++)

            {

                Thread.Sleep(10);

            this.Height = this.Height + 10;

            this.Refresh();

 

            toolara.Text = "Müşteri Bul (Kapat)";

            if (this.Height==500)

            {

                  tmrAra.Enabled = false;

                  grpara.Visible = true;

            }

            }

            }

            else

            {

                for (int i = 0; i < 10; i++)

                {grpara.Visible = false;

                    Thread.Sleep(10);

                    this.Height = this.Height - 10;

                    this.Refresh();

                    toolara.Text = "Müşteri Bul (Aç)";

                    if (this.Height == 470)

                    {

                        tmrAra.Enabled = false;                       

                    }

                }

            }          

        }

Detay [..]

Txt dosyasın dan veri okuyup ListBox'a ekleme

        private void btnYukle_Click(object sender, EventArgs e)
        {
            try
            {
                dlgOpenFile.ShowDialog();

                if (dlgOpenFile.FileName != "")
                {

                    lbMailler.Items.Clear();
                    StreamReader srRead = new StreamReader(dlgOpenFile.FileName);

                    while (srRead.EndOfStream==false)
                    {
                        lbMailler.Items.Add(srRead.ReadLine().ToString());
                    }

                    srRead.Close();
                }
            }

            catch (Exception ex)            
            {

                MessageBox.Show("Hatalı Yükleme !\n\n" + ex.Message);
            }

        }

Detay [..]
 
Görüntülenen Sonuçlar 1 ile 10 arası ( Toplam Kayıt 11)
Sayfa: 1 - 2  « Geri · İleri »
 


Şairin de dediği gibi; 'programcı' adama hazır blog yakışmazdı.

Ürfet Demirtaş (2010) C#.Net