§ ITPOW >> 文档 >> C#

C# 3.0 -扩展方法

作者:vkvi 来源:ITPOW(原创) 日期:2009-8-16

JavaScript 中可用 prototype 对方法进行扩展,比如日期对象本来没有方法 getIsLeapYear(),可以通过 prototype 来扩展使日期对象有这个功能。C# 3.0 中也实现了扩展方法的功能。

public static class StringExtensions
{
    public static string HeiHei(this string str)
    {
        return str + "嘿嘿";
    }
}
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string s = "字符串";
        Response.Write(s.HeiHei()); // 字符串嘿嘿
    }
}

我们为 string 扩展了一个方法,叫 HeiHei,要实现扩展功能,必须:

  • 类是静态的;
  • HeiHei 是静态的;
  • HeiHei 第一个参数的第一个关键词是 this;
  • HeiHei 第一个参数的第二个关键词是 string,表示对 string 的扩展;
  • 可以对 List 等非基本数据类型进行扩展;
  • 若使用了命名空间,在使用时要 using 命名空间。
相关文章