c#3.0新特性(一):var关键字、自动属性、初始化器和扩展方法
2009-05-20 20:51
585 查看
前言:上周闲暇时在公司看了Anders Hejlsberg在PDC08上讲的“The Future of C#”。下面是视频里的截图:
/// <summary>
/// ExtensionMethods (扩展方法)
/// </summary>
public class ExtensionMethods
{
public static void Main()
{
string testStr = "-jeff wong test-";
Console.WriteLine(testStr.TrimMinus());
string[] strArr= new string[] { "a", "b", "c" };
//使用object的In()扩展方法
bool b = "b".In(strArr);
//b == true
Console.WriteLine(b);
Console.ReadLine();
}
}
/// <summary>
/// 扩展方法(类和方法均为static)
/// 使用的时候要引用该类的命名空间
/// </summary>
public static class MyExtensionMethods
{
// this代表扩展方法应用于string类型上
public static string TrimMinus(this string str)
{
return str.Trim(new char[] { '-' });
}
// this代表扩展方法应用于object类型上
// 该扩展方法需要一个类型为System.Collections.IEnumerable的参数
// In()是判断一个object是否存在于一个System.Collections.IEnumerable中的扩展方法
public static bool In(this object o, System.Collections.IEnumerable e)
{
foreach (object i in e)
{
if (i.Equals(o))
{
return true;
}
}
return false;
}
}
ps:上述js的原型扩展和c#的扩展方法功能是一样的,就是string这个类添加一个扩展方法,使得所有这个类的实例化对象能够直接使用这个方法.
/// <summary>
/// ExtensionMethods (扩展方法)
/// </summary>
public class ExtensionMethods
{
public static void Main()
{
string testStr = "-jeff wong test-";
Console.WriteLine(testStr.TrimMinus());
string[] strArr= new string[] { "a", "b", "c" };
//使用object的In()扩展方法
bool b = "b".In(strArr);
//b == true
Console.WriteLine(b);
Console.ReadLine();
}
}
/// <summary>
/// 扩展方法(类和方法均为static)
/// 使用的时候要引用该类的命名空间
/// </summary>
public static class MyExtensionMethods
{
// this代表扩展方法应用于string类型上
public static string TrimMinus(this string str)
{
return str.Trim(new char[] { '-' });
}
// this代表扩展方法应用于object类型上
// 该扩展方法需要一个类型为System.Collections.IEnumerable的参数
// In()是判断一个object是否存在于一个System.Collections.IEnumerable中的扩展方法
public static bool In(this object o, System.Collections.IEnumerable e)
{
foreach (object i in e)
{
if (i.Equals(o))
{
return true;
}
}
return false;
}
}
ps:上述js的原型扩展和c#的扩展方法功能是一样的,就是string这个类添加一个扩展方法,使得所有这个类的实例化对象能够直接使用这个方法.
相关文章推荐
- VS 2008 + .NET 3.5 - C# 3.0新特性之Automatic Properties(自动属性)、Object Initializers(对象初始化器)、Collection Initializers(集合初始化器)和Extension Methods(扩展方法)
- 3、步步为营VS 2008 + .NET 3.5(3) - C# 3.0新特性之Automatic Properties(自动属性)、Object Initializers(对象初始化器)、Collection Initializers(集合初始化器)和Extension Methods(扩展方法)
- C# 3.0新特性之Automatic Properties(自动属性)、Object Initializers(对象初始化器)、Collection Initializers(集合初始化器)和Extension Methods(扩展方法)
- C#3.0 之 自动属性 对象初始化器,集合初始器,扩展方法
- C#3.0 之 自动属性 对象初始化器,集合初始器,扩展方法 (转)
- C#3.0 之 自动属性 对象初始化器,集合初始器,扩展方法
- C#中的自动属性、隐式类型var、对象初始化器与集合初始化器、扩展方法
- 步步为营VS 2008 + .NET 3.5(3) - C# 3.0新特性之Automatic Properties(自动属性)、Object Initializers(对象初始化器)、Collection Initializers(集合初始化器)和Extension Methods(扩展方法)
- C#3.0 之 自动属性 对象初始化器,集合初始器,扩展方法
- C#3.0 之 自动属性 对象初始化器,集合初始器,扩展方法
- C#3.0 之 自动属性 对象初始化器,集合初始器,扩展方法
- C#3.0 之 自动属性 对象初始化器,集合初始器,扩展方法 (转)
- c#语法糖代码——自动属性, 匿名类型,对象与集合初始化器,扩展方法
- [C#详解] (1) 自动属性、初始化器、扩展方法
- [读书笔记]C#学习笔记五: C#3.0自动属性,匿名属性及扩展方法
- C#3.0笔记(三)var关键字与扩展方法
- C#学习笔记四: C#3.0自动属性&匿名属性及扩展方法
- [读书笔记]C#学习笔记五: C#3.0自动属性,匿名属性及扩展方法
- [读书笔记]C#学习笔记五: C#3.0自动属性,匿名属性及扩展方法
- .net framework3.5新特性(1):var、初始化、匿名类和扩展方法