您的位置:首页 > 编程语言 > C#

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这个类添加一个扩展方法,使得所有这个类的实例化对象能够直接使用这个方法.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐