zoukankan      html  css  js  c++  java
  • c# 4.0新功能--扩展方法

    扩展方法,就是在不修改类文件的情况下,为类添加新方法。c# 4.0中大量使用了扩展方法,如Linq查询的GroupBy、OrderBy、Average等方法。

    eg:      在不修改System.String的情况下,为 System.String 类定义的一个扩展方法WordCount

    //定义代码
    namespace ExtensionMethods
    {
        public static class MyExtensions
        {
            //定义扩展方法WordCount
            public static int WordCount(this String str)
            {
                return str.Split(new char[] { ' ', '.', '?' }, 
                                 StringSplitOptions.RemoveEmptyEntries).Length;
            }
        }   
    }

      调用方式1:使用实例方法 (推荐使用此方法)

    //调用代码
    using ExtensionMethods;
    ...
    
        string s = "Hello Extension Methods";
        int i = s.WordCount();
    
         ...

     调用方式2:使用静态方式

    int i = MyExtensions.WordCount(s);

     限制:

    1、只能在静态类中定义扩展方法,且扩展方法自身必须是一个静态方法。
    2、扩展方法中的首个参数必须是this,最后紧跟要扩展的类的名称。
    3、扩展方法可以被正确的对象实例调用,也可以使用静态类名静态的调用。 
    4、扩展方法不要重名,否则扩展方法将不能被调用到。
    5、扩展方法无法访问它们所扩展的类型中的私有变量。因为扩展方法是静态方法,并不属于类成员中的标准方法,因此不能直接进行访问。
    6、在调用扩展方法时,需要引用定义扩展方法的命名空间。
    静守己心,看淡浮华
  • 相关阅读:
    Selenium2+python自动化17-JS处理滚动条
    图论一
    HDU1106
    银行家算法学习笔记
    NYOJ 540
    我在博客园 2013-08-02 22:04 200人阅读 评论(0) 收藏
    编程之美:平面最近点对
    RIA算法解决最小覆盖圆问题
    求两直线交点和三角形内外心
    求圆心
  • 原文地址:https://www.cnblogs.com/jianglingli83/p/3226626.html
Copyright © 2011-2022 走看看