İpucu

Extension Metod ile daha az kod yazarak sürekli yaptığınız işlemleri sadeleştirebilir ve daha okunabilir hale getirebilirsiniz. 

Örneğin Enum içindeki numaralandırılmış nesnenin Integer tipinden değerini almak istiyoruz. sürekli bilinçli dönüştürme cast yaparak almak yerine object sınıfına ToValue şeklinde bir metod yazıp bunu tek  seferde çekmek çok daha kolay olacaktır. Burada bütün nesneler için çalışmasını engelleyip sadece enum için çalışması için bir kontrol koymamız yeterli olacaktır.

    public static class Extension
    {
        public static int ToValue(this object value)
        {
            int result = 0;
            if (value.GetType().BaseType == typeof(Enum))
                result = (int)value;

            return result;
        }
    }
 
Yazdığımız metodun kullanımına bakalım.
public class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Standart Tip : {0}",PersonelTipleri.Stajer);
            Console.WriteLine("Cast Ile Tip : {0}",(int)PersonelTipleri.Stajer);
            Console.WriteLine("Extension Ile Tip : {0}",PersonelTipleri.Stajer.ToValue());
            Console.ReadLine();
        }
    }
 
Çıktılar : 
Standart Tip : Stajer
Cast Ile Tip : 1
Extension Ile Tip : 1