扩展方法必须在非泛型静态类中定义:

   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、扩展方法必须在静态类里面。

转载于:https://blog.51cto.com/xyh1993/1830555

扩展方法必须在非泛型静态类中定义相关推荐

  1. 扩展方法必须在非泛型静态类中定义_第11篇:Cython面向对象编程--扩展类的实例化...

    我们前篇谈到了Cython的访问控制,并且谈论了cdef class关键字的底层操作,顺带也谈论了Python类为什么会比Cython类慢的原因.本篇我们将介绍Cython扩展类的初始化 Cython ...

  2. 技术图文:C# 语言中的扩展方法

    背景 前段时间,在知识星球立了一个Flag,在总结 Leetcode 刷题的第五篇图文时遇到了扩展方法 这个知识点,于是先总结一下. 1.扩展方法概述 扩展方法能够向现有类型"添加" ...

  3. C#参数列表中的this(扩展方法)

    参数列表中this的这种用法是在.NET 3.0之后新增的一种特性---扩展方法.通过这个属性可以让程序员在现有的类型上添加扩展方法(无需创建新的派生类型.重新编译或者以其他方式修改原始类型). 扩展 ...

  4. [C# 基础知识系列]专题十五:全面解析扩展方法

    引言:  C# 3中所有特性的提出都是更好地为Linq服务的, 充分理解这些基础特性后.对于更深层次地去理解Linq的架构方面会更加简单,从而就可以自己去实现一个简单的ORM框架的,对于Linq的学习 ...

  5. .NET中那些所谓的新语法之二:匿名类、匿名方法与扩展方法

    开篇:在上一篇中,我们了解了自动属性.隐式类型.自动初始化器等所谓的新语法,这一篇我们继续征程,看看匿名类.匿名方法以及常用的扩展方法.虽然,都是很常见的东西,但是未必我们都明白其中蕴含的奥妙.所以, ...

  6. C#中的扩展方法学习总结

      版权声明:本文由秦元培创作和发表,采用署名(BY)-非商业性使用(NC)-相同方式共享(SA)国际许可协议进行许可,转载请注明作者及出处,本文作者为秦元培,本文标题为C#中的扩展方法学习总结,本文 ...

  7. 【Groovy】Groovy 扩展方法 ( Groovy 扩展方法引入 | 分析 Groovy 中 Thread 类的 start 扩展方法 )

    文章目录 一.Groovy 扩展方法引入 二. 分析 Groovy 中 Thread 类的 start 扩展方法 一.Groovy 扩展方法引入 Groovy 可以对 JDK 中的一些类进行 方法扩展 ...

  8. C#扩展方法和静态类详解

    1.静态方法属于类,而普通方法则属于对象,因此静态方法可以用类名.静态方法 来调用,而普通方法则必须用new来实例化后调用 2.静态类中只能有 静态的方法,属性和变量 3.普通类中能有普通方法,也能有 ...

  9. C#学习笔记四: C#3.0自动属性匿名属性及扩展方法

    前言 这一章算是看这本书最大的收获了, Lambda表达式让人用着屡试不爽, C#3.0可谓颠覆了我们的代码编写风格. 因为Lambda所需篇幅挺大, 所以先总结C#3.0智能编译器给我们带来的诸多好 ...

最新文章

  1. c++ map 的基本操作
  2. 王者服务器维护7月九号,腾讯手游王者荣耀7月9号9点半版本更新,备受期待的S20赛季它来了...
  3. CF388D-Fox and Perfect Sets【dp,线性基】
  4. JDBC的SQL注入漏洞
  5. linux gdb网络调试工具,Linux--gdb调试工具
  6. 正则表达式 - - - 补(爬虫正则之基础)
  7. CP-ABE公式推导笔记
  8. 网络加速 java_快速入门之:使用 dragonite forwarder 加速 Shadowsocks 连接
  9. 从文件夹中读取所有文件的指定内容,按行读取。
  10. Douglas Peucker算法的C#实现
  11. eclipse 闪退原因
  12. 怎没使用新浪微博html5,如何使用新浪微博
  13. PS滤镜-Topaz Photoshop Plugins Bundle
  14. 分析家数据格式、结构
  15. 阿里天池金融数据分析赛题2:保险反欺诈预测baseline
  16. ArcGIS PRO基础教程(二)
  17. java convexhull_Java GeometryEngine.convexHull方法代码示例
  18. C语言关于变量定义未使用编译警告warring
  19. java @around_正确理解Spring AOP中的Around advice
  20. 最大后验估计(MAP)------贝叶斯学派的法宝

热门文章

  1. 常见的不同类型运算的转换方式
  2. 配置 tsconfig.json
  3. Java多线程系列——深入重入锁ReentrantLock
  4. 使用MAP文件快速定位程序崩溃代码行(转)
  5. Asp.net(C#)-显示所有缓存 清除所有缓存
  6. java 终结此段代码并重新运行_Java垃圾回收
  7. eclipse源服务器未能找到,eclipse - HTTP状态[404]? [未找到](原始服务器未找到当前表示) - 堆栈内存溢出...
  8. python 多进程 调用模块内函数_python子进程模块subprocess详解与应用实例 之一
  9. html5结合css3,html5八大技术特征,与CSS3完美结合
  10. java for循环的这种写法怎么理解:for (; ; ) {},