- 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