扩展方法

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

  扩展方法:个人理解就是能够扩展到其它类型上的方法,只需要添加该方法所在的命名空间就行了,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,怎么样扩展方法的威力很大、很神奇吧,不过在我们用的时候就没有这么简单了,比如该类型已有的方法名和扩展方法冲突的时候?

转载于:https://www.cnblogs.com/wangcw/archive/2011/01/11/1933270.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值