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、在调用扩展方法时,需要引用定义扩展方法的命名空间。
    静守己心,看淡浮华
  • 相关阅读:
    URAL 2014 Zhenya moves from parents 线段树
    git 安装及命令
    在eclipse中执行sql
    在eclipse中配置server和database
    java的regex问题笔记
    在开发中写一些tool来提升自己的效率
    在Eclipse中给JRE-Library添加本地Javadoc
    利用eclipse中的各种功能帮助你理解代码
    Eclipse中直接操作本地文件系统
    form action中如何填写相对目录
  • 原文地址:https://www.cnblogs.com/jianglingli83/p/3226626.html
Copyright © 2011-2022 走看看