扩展方法

扩展方法(ExtensionMethods)

1.      扩展方法被定义为静态方法,但它们是通过实例方法语法进行调用的。 它们的第一个参数指定该方法作用于哪个类型,并且该参数以 this 修饰符为前缀。 仅当您使用 using 指令将命名空间显式导入到源代码中之后,扩展方法才位于范围中。(静态类+静态方法)

2.      申明方式

namespace ExtensionMethods

{

    public staticclassMyExtensions

    {

        public staticintWordCount(this String str)

        {

            return str.Split(newchar[] { ' ', '.', '?' },

                            StringSplitOptions.RemoveEmptyEntries).Length;

        }

    }  

}

3.       引用实现方式

可使用以下 using 指令将 WordCount扩展方法放入范围中:

usingExtensionMethods;

而且,可以在应用程序中使用以下语法对该扩展方法进行调用:

string s= "Hello Extension Methods";

int i =s.WordCount();

在代码中,可以使用实例方法语法调用该扩展方法。但是,编译器生成的中间语言 (IL) 会将代码转换为对静态方法的调用。因此,并未真正违反封装原则。实际上,扩展方法无法访问它们所扩展的类型中的私有变量。

总结心得:

扩展方法(必须使用 静态类+静态方法申明) 是对对象自身的扩展(插件形式),方法参数当中的 this Type obj 指向实例对象自身,[实例对象].[扩展方法](parms)形式调用.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值