C#3.0笔记(三)var关键字与扩展方法
2009-05-18 08:28:03 来源:WEB开发网核心提示: 扩展方法的由来与定义当一个类型被定义好了之被编译进一个程序集后,它的定义工作就已经结束了,C#3.0笔记(三)var关键字与扩展方法(2),一般的时候我们要添加新的方法的时候,只能去修改代码重新编译(也可以通过反射机制去修改),也就是说方法也必须是静态的;2)所有的方法的第一个参数必须加上
扩展方法的由来与定义
当一个类型被定义好了之被编译进一个程序集后,它的定义工作就已经结束了,一般的时候我们要添加新的方法的时候,只能去修改代码重新编译(也可以通过反射机制去修改)。在C#3.0里面为我们提供了扩展方法这样东西。当我们需要为某个类型添加功能,但又没有源代码的时候,扩展方法是比较好的选择。下面我们来对object类型定义一个扩展方法:
public static string DisplayDefinigAssembly(this object obj)
{
return String.Format("{0} lives here :nt {1}n", obj.GetType().Name,
Assembly.GetAssembly(obj.GetType()));
}
在定义一个扩展方法时要注意三点:
1)必须把方法定义在静态类中,也就是说方法也必须是静态的;
2)所有的方法的第一个参数必须加上this关键字;
3)扩展方法的调用只能在内存中的实例中调用,或则通过静态类调用。
上面的扩展方法就是通过放射机制察看object所在的类型以及程序集。我们可以看下一个调用的示例:
static void Main(string[] args)
{
DataSet ds = new DataSet();
Console.Write(ds.DisplayDefinigAssembly());
Console.Read();
}
更多精彩
赞助商链接