码迷,mamicode.com
首页 > Windows程序 > 详细

C# 3.5 扩展方法

时间:2015-07-01 20:05:47      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:

扩展方法

扩展方法所在的类和扩展方法必须是静态的 并且扩展方法第一个参数是要扩展的类名 并在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) 这样的方法,如果也没有,编译通不过。

C# 3.5 扩展方法

标签:

原文地址:http://www.cnblogs.com/AllUserBegin/p/4613789.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!