擴展方法必須在非泛型靜態類中定義:

???public??class?CustomerHelperClass{public?static?MvcHtmlString?CreateImage(string?p_w_picpathSource,?string?altText,?string?width,?string?height){//通過TagBulider創建標簽TagBuilder?p_w_picpathTag?=?new?TagBuilder("img");//MergeAttribute添加新特性p_w_picpathTag.MergeAttribute("src",?p_w_picpathSource);p_w_picpathTag.MergeAttribute("alt",?altText);p_w_picpathTag.MergeAttribute("width",?width);p_w_picpathTag.MergeAttribute("height",?height);//MvcHtmlString.Create使用指定的文本值,創建HTML編碼的字符串return?MvcHtmlString.Create(p_w_picpathTag.ToString(TagRenderMode.SelfClosing));}public?static?MvcHtmlString?CreateImage(this?HtmlHelper?htmlHelper,?string?p_w_picpathSource,?string?altText,?string?height,?string?width){//通過TagBuilder創建標簽TagBuilder?p_w_picpathTag?=?new?TagBuilder("img");p_w_picpathTag.MergeAttribute("src",p_w_picpathSource);p_w_picpathTag.MergeAttribute("alt",?altText);p_w_picpathTag.MergeAttribute("height",?height);p_w_picpathTag.MergeAttribute("width",?width);//MvcHtmlString.Create使用指定的文本值,創建HTML編碼的字符串return?MvcHtmlString.Create(p_w_picpathTag.ToString(TagRenderMode.SelfClosing));}}

在上面的這段代碼中在編譯時會出現“擴展方法必須在非泛型靜態類中定義”,出現錯誤的原因就在于

public??class?CustomerHelperClass

擴展方法所在的這個類為非靜態的,只需將擴展方法所在的類定義成靜態類即可,修改如下:

public?static?class?CustomerHelperClass

因此在使用靜態方法時需要注意:

1、擴展方法即靜態方法。

2、擴展方法必須在靜態類里面。