• 扩展方法(Extension method),可以对现有类功能进行扩充,从而使该类型的实例具有更多的方法(功能)。
• Extension Method仅仅是看起来像是一个类型的方法,但其实质上不是,它更像是静态类型的静态方法,事实上,它确实拥有静态方法所具有的所有功能
• Extension Method的作用域是整个namespace可见的,并且可以通过using namespace来导入其它命名空间中的Extension Method
举例:
• Extension Method仅仅是看起来像是一个类型的方法,但其实质上不是,它更像是静态类型的静态方法,事实上,它确实拥有静态方法所具有的所有功能
• Extension Method的作用域是整个namespace可见的,并且可以通过using namespace来导入其它命名空间中的Extension Method
举例:
namespace My.Helpers
{
public static class CSSExtension
{
public static string CSSList(this HtmlHelper helper, ViewData viewData)
{
return string.Empty;
}
}
public class MyProgram
{
public void Execute(ViewData viewData)
{
HtmlHelper helper = new HtmlHelper();
helper.CSSList(viewData);
}
}
}
namespace MyNamespace
{
using My.Helpers;
public class MyProgram
{
public class MyProgram
{
public void Execute(ViewData viewData)
{
HtmlHelper helper = new HtmlHelper();
helper.CSSList(viewData);
}
}
}
}
{
public static class CSSExtension
{
public static string CSSList(this HtmlHelper helper, ViewData viewData)
{
return string.Empty;
}
}
public class MyProgram
{
public void Execute(ViewData viewData)
{
HtmlHelper helper = new HtmlHelper();
helper.CSSList(viewData);
}
}
}
namespace MyNamespace
{
using My.Helpers;
public class MyProgram
{
public class MyProgram
{
public void Execute(ViewData viewData)
{
HtmlHelper helper = new HtmlHelper();
helper.CSSList(viewData);
}
}
}
}