C# 3.5 扩展方法

扩展方法

扩展方法所在的类和扩展方法必须是静态的 并且扩展方法第一个参数是要扩展的类名 并在this

Person person = new Person();

public static class Extension
    {  
        public static void ExtensionMethod(this Person p)
        {
            .......;
        }
}

person.ExtensionMethod();

当person调用 ExtensionMethod()时,C# Compiler 会把这段Source Code 编译成Static Method 的IL Code。也可以理解为

编译器做了这样的处理,person.ExtensionMethod();  =>  ExtensionMethod(person);

C# Compiler 编译的过程是这样的:

    • 首先查看Person类中是否有ExtensionMethod()方法,有的话,直接调用;
    • 如果没有,在相应的NameSpace 当中,查找static Class,看看这些static Class当中,是否有public static void ExtensionMethod(this Person p) 这样的方法,如果也没有,编译通不过。

转载于:https://www.cnblogs.com/AllUserBegin/p/4613789.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值