Anonymous Tiplerin Propertysine Ulaşmak

C# 3.0 ile gelen Anonymous tiplerin propertylerine aşağıdaki gibi ulaşabiliriz.

var anonymousTypeObject = new { Name = "Lorem", SurName = "Impuls" };

PropertyDescriptorCollection props = TypeDescriptor.GetProperties(anonymousTypeObject);
foreach (PropertyDescriptor loopParam in props)
{
    var paramName = loopParam.Name;
    var paramValue = loopParam.GetValue(anonymousTypeObject);
}

C#’ ta Property Kullanımı

Bir class içerisinde bulunan bazı alanlara başka bir class içerisinden her zaman ulaşmak gerekmez. Oluşturulan bu private alanlara kontrollü bir şekilde erişim sağlanmak için Property tanımlanmaktadır. Property tanımı ile bu alanları get edebilir, set edebilir ya da her ikiniside aynı anda edebilirsiniz.
Property’ lerin kullanım şekli alağıdaki gibidir.

public int PropertyAdi  
{  
    get;  
    set;  
}

Studio’ da otomatik olarak property oluşturak için “prop” yazıp iki defa tab tuşuna basmak yeterlidir. Propertyleri örnek üzerinde inceleyelim.

public class Ogrenci  
{  
    private string Adi;  
    private string Soyadi;  
    private int Yas;  
  
    public string ADI  
    {  
        get { return Adi; }  
        set { Adi = value; }  
    }  
  
    public string SOYADI  
    {  
        get { return Soyadi; }  
        set { Soyadi = value; }  
    }  
  
    public int YAS  
    {  
        get { return Yas; }  
        set { Yas = value; }  
    }  
} 

Öğrenci sınıfını çağıralım ve property’lerini resim üzerinde inceleyelim.

Sadece get edebileceğimiz bir property oluşturabiliriz.

public string ADI  
{  
    get { return Adi; }  
}

Ya da sadece set edebileceğimiz bir property tanımlayabiliriz.

public string ADI  
{  
    set { Adi = value; }  
} 

Set ederken bir koşula göre set edebiliriz. Örneğimizde yaş property’si bulunmaktadır. Örnek olarak 18 yaşından küçük olan bir öğrencinin kayıt olması durumunda kayıt olamayacağı uyarısı veren bir mesaj tanımlayalım. Eğer 18 yaşından büyük ise işlem yapabilecektir.

public int YAS  
{  
    get { return Yas; }  
    set  
    {  
        if (value < 18)  
        {  
            MessageBox.Show("18 yaşından küçükler üye olamaz.");  
        }  
        else  
        {  
            Yas = value;  
        }  
    }  
} 

Alıntıdır: http://www.hikmetokumus.com/12-csharp’-ta-property-kullanimi-Makale.aspx