C# 3.0 -扩展方法

  • C# 3.0 - var 隐式类型声明
  • C# 3.0 -自动属性实现
  • C# 3.0 -对象初始化设置
  • C# 3.0 -集合初始化设置
  • C# 3.0 -匿名类型
  • C# 3.0 -扩展方法
  • C# 3.0 - partial 分部(类型)
  • C# 3.0 - Lambda
  • C# 3.0 - { get; set; } 默认值
  • C# 3.0 - { get; set; } 默认值 2
  • C# 3.0 - yield

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 命名空间。
  • C# 3.0 - var 隐式类型声明
  • C# 3.0 -自动属性实现
  • C# 3.0 -对象初始化设置
  • C# 3.0 -集合初始化设置
  • C# 3.0 -匿名类型
  • C# 3.0 -扩展方法
  • C# 3.0 - partial 分部(类型)
  • C# 3.0 - Lambda
  • C# 3.0 - { get; set; } 默认值
  • C# 3.0 - { get; set; } 默认值 2
  • C# 3.0 - yield

你可能感兴趣的