扩展方法必须在非泛型静态类中定义
扩展方法必须在非泛型静态类中定义:
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
扩展方法必须在非泛型静态类中定义相关推荐
- 扩展方法必须在非泛型静态类中定义_第11篇:Cython面向对象编程--扩展类的实例化...
我们前篇谈到了Cython的访问控制,并且谈论了cdef class关键字的底层操作,顺带也谈论了Python类为什么会比Cython类慢的原因.本篇我们将介绍Cython扩展类的初始化 Cython ...
- 技术图文:C# 语言中的扩展方法
背景 前段时间,在知识星球立了一个Flag,在总结 Leetcode 刷题的第五篇图文时遇到了扩展方法 这个知识点,于是先总结一下. 1.扩展方法概述 扩展方法能够向现有类型"添加" ...
- C#参数列表中的this(扩展方法)
参数列表中this的这种用法是在.NET 3.0之后新增的一种特性---扩展方法.通过这个属性可以让程序员在现有的类型上添加扩展方法(无需创建新的派生类型.重新编译或者以其他方式修改原始类型). 扩展 ...
- [C# 基础知识系列]专题十五:全面解析扩展方法
引言: C# 3中所有特性的提出都是更好地为Linq服务的, 充分理解这些基础特性后.对于更深层次地去理解Linq的架构方面会更加简单,从而就可以自己去实现一个简单的ORM框架的,对于Linq的学习 ...
- .NET中那些所谓的新语法之二:匿名类、匿名方法与扩展方法
开篇:在上一篇中,我们了解了自动属性.隐式类型.自动初始化器等所谓的新语法,这一篇我们继续征程,看看匿名类.匿名方法以及常用的扩展方法.虽然,都是很常见的东西,但是未必我们都明白其中蕴含的奥妙.所以, ...
- C#中的扩展方法学习总结
版权声明:本文由秦元培创作和发表,采用署名(BY)-非商业性使用(NC)-相同方式共享(SA)国际许可协议进行许可,转载请注明作者及出处,本文作者为秦元培,本文标题为C#中的扩展方法学习总结,本文 ...
- 【Groovy】Groovy 扩展方法 ( Groovy 扩展方法引入 | 分析 Groovy 中 Thread 类的 start 扩展方法 )
文章目录 一.Groovy 扩展方法引入 二. 分析 Groovy 中 Thread 类的 start 扩展方法 一.Groovy 扩展方法引入 Groovy 可以对 JDK 中的一些类进行 方法扩展 ...
- C#扩展方法和静态类详解
1.静态方法属于类,而普通方法则属于对象,因此静态方法可以用类名.静态方法 来调用,而普通方法则必须用new来实例化后调用 2.静态类中只能有 静态的方法,属性和变量 3.普通类中能有普通方法,也能有 ...
- C#学习笔记四: C#3.0自动属性匿名属性及扩展方法
前言 这一章算是看这本书最大的收获了, Lambda表达式让人用着屡试不爽, C#3.0可谓颠覆了我们的代码编写风格. 因为Lambda所需篇幅挺大, 所以先总结C#3.0智能编译器给我们带来的诸多好 ...
最新文章
- c++ map 的基本操作
- 王者服务器维护7月九号,腾讯手游王者荣耀7月9号9点半版本更新,备受期待的S20赛季它来了...
- CF388D-Fox and Perfect Sets【dp,线性基】
- JDBC的SQL注入漏洞
- linux gdb网络调试工具,Linux--gdb调试工具
- 正则表达式 - - - 补(爬虫正则之基础)
- CP-ABE公式推导笔记
- 网络加速 java_快速入门之:使用 dragonite forwarder 加速 Shadowsocks 连接
- 从文件夹中读取所有文件的指定内容,按行读取。
- Douglas Peucker算法的C#实现
- eclipse 闪退原因
- 怎没使用新浪微博html5,如何使用新浪微博
- PS滤镜-Topaz Photoshop Plugins Bundle
- 分析家数据格式、结构
- 阿里天池金融数据分析赛题2:保险反欺诈预测baseline
- ArcGIS PRO基础教程(二)
- java convexhull_Java GeometryEngine.convexHull方法代码示例
- C语言关于变量定义未使用编译警告warring
- java @around_正确理解Spring AOP中的Around advice
- 最大后验估计(MAP)------贝叶斯学派的法宝
热门文章
- 常见的不同类型运算的转换方式
- 配置 tsconfig.json
- Java多线程系列——深入重入锁ReentrantLock
- 使用MAP文件快速定位程序崩溃代码行(转)
- Asp.net(C#)-显示所有缓存 清除所有缓存
- java 终结此段代码并重新运行_Java垃圾回收
- eclipse源服务器未能找到,eclipse - HTTP状态[404]? [未找到](原始服务器未找到当前表示) - 堆栈内存溢出...
- python 多进程 调用模块内函数_python子进程模块subprocess详解与应用实例 之一
- html5结合css3,html5八大技术特征,与CSS3完美结合
- java for循环的这种写法怎么理解:for (; ; ) {},