代码改变世界

MVC5 Controller简要创建过程(2):由ControllerFactory创建Controller

2015-06-26 23:58 by cgs, 298 阅读, 0 推荐, 收藏, 编辑
摘要:上文已经完成了ControllerFactory的创建,接下来就是调用其CreateController()方法创建Controller了。DefaultControllerFactory中CreateController()的实现: public virtual IControlle... 阅读全文

MVC5 Controller简要创建过程(1):ControllerFactory的创建

2015-06-26 11:56 by cgs, 1297 阅读, 0 推荐, 收藏, 编辑
摘要:即将离职,闲来无事回顾下MVC的源码,到了Controller创建这里,由于流程有点复杂,鉴于自己记性不太好,索性就记录一下吧,方便日后参照。首先看MvcHandler: 1 public class MvcHandler : IHttpAsyncHandler, IHttpHandler, IRe... 阅读全文

CLR via C# 阅读笔记

2015-05-19 23:33 by cgs, 121 阅读, 0 推荐, 收藏, 编辑
摘要:1.char在C#中为16位Unicode字符;int 映射到System.Int32;long映射到System.Int64。2.重载时C#不考虑返回值,而CLR允许返回值不同,方法名和参数相同的重载。3.callvirt调用方法时会验证变量是否为NULL,如果是则无法判断变量的实际类型从而抛出异... 阅读全文

C#编程建言笔记

2015-05-08 00:58 by cgs, 204 阅读, 0 推荐, 收藏, 编辑
摘要:方法:1.方法(静态或实例)JIT编译后,在内存中的代码段上都是一个全局函数,且只存在一份拷贝。2.方法修饰符:保护级别,静态,虚函数;方法签名:返回值,函数名,参数。构造器:1.一个方法只能有一个静态构造器,默认为private,且不能添加修饰符。静态构造器只能由系统调用,来初始化静态字段。调用发... 阅读全文

C# in Depth阅读笔记3:C#3特性

2015-01-16 15:15 by cgs, 168 阅读, 0 推荐, 收藏, 编辑
摘要:1.隐式类型var a=new Dictionary>();可以简化代码,增强可读性。2.简化初始化(1)设置简单属性Person tom1= new Person(){Name="Tom", Age=17};(2)为嵌入对象设置属性 Person tom2=new Person() { N... 阅读全文

C# in Depth阅读笔记2:C#2特性

2015-01-09 00:51 by cgs, 160 阅读, 0 推荐, 收藏, 编辑
摘要:1.方法组转换c#2支持一个从方法组到兼容委托类型的隐式转换,即如:button.click+=new eventhandler(logevent)可以写成button.click+=logevent。2.匿名函数的闭包和捕获外部变量闭包:执行一段代码所需要的上下文。被捕获的外部变量:在匿名方法内部... 阅读全文

C# in Depth阅读笔记1:C#1特性

2014-12-23 09:12 by cgs, 203 阅读, 0 推荐, 收藏, 编辑
摘要:1.委托 委托是对包含返回值和参数的行为的一种封装,类似于单一方法的接口。 委托是不易变的(就像string),system.delegate下的combine和remove方法都只能产生一个新的委托。这样就可以很安全地传递委托的引用,而不必考虑一致性,线程安全的问题。 委托实现步骤:(1)声明委托... 阅读全文