C#学习笔记之扩展方法

发布时间:2020-08-25编辑:脚本学堂
本文介绍下,有关C#中的扩展方法的相关知识,有需要的朋友,参考下吧。

1,如果在某些情况下,我们不能改动类的源码,这时如果要想给对象添加功能的话,就要使用扩展方法。

2,扩展方法是静态的。

3,扩展方法中,可以访问多扩展类型中,所有公共方法和属性。

4,如果扩展方法与类中的方法同名,那么扩展方法就不被调用,已有的方法优先。

5,如下类
已有类ClassA,现要为它加一个方法FunctionB
 

复制代码 代码示例:
namespace Object 

        class ClassA 
        { 
            public ClassA(int a) 
            { 
                this.A = a; 
            } 
     
            public int A 
            { 
                get; 
                set; 
            } 
     
            public void FunctionA() 
            { 
                this.A--; 
            } 
        } 
    } 
 

添加扩展方法如下:
 

复制代码 代码示例:
namespace Object 

        //此处不可定义Public,编译错误 
        static class ClassAExtension 
        { 
            /*其中this ClassA clsA是必须的,
            这告诉编译器,这个方法FunctionB是ClassA的一部分。
            如果需要传其他参数,只需要在this ClassA clsA后面添加即可,
            如: FunctionB(this ClassA clsA, int j)*/ 
            public static void FunctionB(this ClassA clsA)  
            { 
                clsA.A++; 
            } 
        } 
    } 

调用示例:
 

复制代码 代码示例:
ClassA cls = new ClassA(10);
cls.FunctionB();

就是这些了,C#学习笔记之C#的扩展方法,希望对大家有所帮助。