Allen Wang

专注web开发
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C#3.0新特性 扩展方法

Posted on 2008-02-28 18:58  AllenWang.NET  阅读(217)  评论(0编辑  收藏  举报
• 扩展方法(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);
            }

        }

    }

}