前两天学了个扩展方法,感觉挺好玩想写一篇博客记录一下,一直到现在才有时间

  扩展方法:个人理解就是能够扩展到其它类型上的方法,只需要添加该方法所在的命名空间就行了,Linq中的很多方法都是扩展方法,下面是一个简单的扩展方法的Demo。

  1.在一个名为MyMethod的命名空间中写一个静态的方法

  

namespace MyMethod
{
    
    static class MyClass {
        public static int MyAdd(this int a)
        {
            return a + 10;
        }
    }
}
  

  该方法在那个类中并不重要,重要的是有这么一个方法,而且方法的参数必须以this开头,意思就是将自己(调用方法的对象)作为参数传进去。然后编译成程序集。

  

  2.添加程序集引用和声明命名空间

  using MyMethod;

  3.现在就可以调用刚才写的扩展方法了,注意因为该扩展方法的参数类型是int类型,所以只有int类型的对象才能调用该扩展方法。

  

class Program
    {
        static void Main(string[] args)
        {
            int a = 10;
            int b = a.MyAdd();
            Console.WriteLine(b);
        }
    }

  

 

     以上就是扩展方法的一个简单的Demo,怎么样扩展方法的威力很大、很神奇吧,不过在我们用的时候就没有这么简单了,比如该类型已有的方法名和扩展方法冲突的时候?

posted on 2011-01-11 21:55  王长委  阅读(372)  评论(1编辑  收藏  举报