![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
Code
/// <summary>
/// ExtensionMethods 的摘要说明
/// </summary>
public class ExtensionMethods
{
public void ExtensionMethodsTest()
{
string s = "123";
// 使用string的ToInt32()扩展方法
int i = s.ToInt32();
// i == 123
string[] ary = new string[] { "a", "b", "c" };
// 使用object的In()扩展方法
bool b = "b".In(ary);
// b == true
}
}
/// <summary>
/// 扩展方法(类和方法均为static)
/// 使用的时候要引用该类的命名空间
/// </summary>
public static class MyExtensionMethods
{
// this代表扩展方法应用于string类型上
// ToInt32()是将string类型转换为int类型的扩展方法
public static int ToInt32(this string s)
{
int i;
Int32.TryParse(s, out i);
return i;
}
// 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;
}
}
posted @
2009-01-04 15:45
李占卫
阅读(
307)
评论()
编辑
收藏
举报