上一篇随笔.NET 扩展方法 (一)已经对 扩展方法有了大致的介绍,这篇算是一个补充,让我们来看一下扩展方法的几个细节:一、扩展方法具有继承性当使用扩展方法扩展一个类型的时候,其也扩展了派生类,所以上一篇的遗留问题“如果给object添加一个扩展方法会出现什么效果呢?” 的答案就是——所有类型都将扩...
分类:
Web程序 时间:
2014-08-28 19:39:05
阅读次数:
203
我还记得刚刚学编程的时候,老师经常会提到一句话:注意空指针。所以经常在某些“入口”位置,进行代码校验,空指针的判断就是其中的一项工作。string类型作为常用的数据类型,它在项目中出现的机率极高,所以往往会有如下的代码片段: // str 是 string 类型 ...
分类:
Web程序 时间:
2014-08-27 20:13:18
阅读次数:
202
LINQ查询方法一共提供了两种扩展方法,在System.Linq命名空间下,有两个静态类:Enumerable类,它针对继承了IEnumerable接口的集合进行扩展;Queryable类,针对继承了IQueryable接口的集合进行扩展。我们会发现接口IQueryable实际也是继承了IEnume...
分类:
其他好文 时间:
2014-08-22 17:45:19
阅读次数:
316
由于在MVC中经常会使用到@Html.DropDownList方法,而该方法接收的是List 参数,因此就想着写一个扩展方法,直接把IEnumerable转换为List类型,这样使用起来会比较方便正式进入正文。1、首先创建下面实体: //水果类 public class Fruit { ...
分类:
Web程序 时间:
2014-08-21 14:38:54
阅读次数:
252
一些第三方库里对系统库的类加了category,
这时,就需要使用编译参数:-ObjC,这样第三方库中对系统类作的扩展方法才能在工程中使用。
但是使用-Objc后,会产生两个问题:
1、undefined symbols
2、duplicate symbol
undefined symbols
说明工程中没有引入第三方库引用的库。
如果不加-ObjC参数,则...
分类:
其他好文 时间:
2014-08-20 16:25:13
阅读次数:
175
C#3.0之后推出了扩展方法。我们通常看到的方法都是和声明它的类相关联。扩展方法特性扩展这个边界,允许编写的方法和声明它的类之外的类关联。要想知道可以如何使用这个特性,请看下面的代码。它包含类MyPerson.该类存贮了3个double类型的值,并含有一个构造函数和一个名称为sum的方法,该方法返....
分类:
Web程序 时间:
2014-08-18 21:58:02
阅读次数:
277
jQuery 的 tagit 插件效果还是不错的,今天用到该插件但发现不能自定义标签分隔符,只能是英文半角逗号或空格,于是想改造下
效果:
先研究了一番插件的代码,发现并不能通过插件自身的扩展方法来实现,
标签输入框是插件自己生成的,所以本来想在外部绑定 keydown 事件但由于事件绑定先后顺序的问题不能实现,只能修改代码了:
改动不多,主要是增加了三个事件绑定在插件原来...
分类:
Web程序 时间:
2014-08-17 18:34:46
阅读次数:
441
一、一个功能强大的页面开发辅助类—HtmlHelper初步了解1.1 有失必有得 在ASP.Net MVC中微软并没有提供类似服务器端控件那种开发方式,毕竟微软的MVC就是传统的请求处理响应的回归。所以抛弃之前的那种事件响应的模型,抛弃服务器端控件也理所当然。 但是,如果手写Html标签效率又比.....
分类:
Web程序 时间:
2014-08-16 16:22:11
阅读次数:
238
C#2.0 泛型,可空类型,匿名方法,更方便的委托,迭代器,分布类型,静态类,包含不同访问修饰符的属性的取值和赋值方法,命名空间别名,pragma指令,固定大小的缓冲器。C#3.0 LINQ,自动属性,var,对象和集合的初始化器,匿名类型,Lambda表达式,扩展方法C#4.0 可选参数,命...
分类:
其他好文 时间:
2014-08-15 01:27:36
阅读次数:
190