2013年2月28日

构造函数

摘要: 小结:1. 引用类型的实例构造函数对于引用类型,如果没有显式为其定义任何构造函数,那么,许多编译器(包括c#编译器)将会定义一个默认的无参数构造函数,该构造函数的实现只是调用基类的无参构造函数,如public class SomeType{ ...}上述代码等同于下面的代码:public class SomeType{public SomeType():base(){ };}如果存在继承关系,编译器会自动产生调用基类无参构造函数的代码,沿着继承链一直到System.Object的无参构造函数。但实例构造函数是不能被继承的,只能被当前类使用,不能被子类调用。2. 值类型实例构造函数a. 值类型没 阅读全文

posted @ 2013-02-28 23:13 Gcam 阅读(203) 评论(0) 推荐(0) 编辑

2013年2月27日

关于参数

摘要: 小结:1. 按引用传递参数在C#中可以使用关键字out或ref来实现按引用传递参数,从CLR的角度看,out与ref生成的元数据及IL代码都是相同的。a. out参数在传值前可以先赋值也可以不赋,但在方法返回时必须被赋值b. ref参数在传值前必须先赋值,在方法返回时可以修改其值c. 重载仅存在out和ref差异的方法是不合法的,因为这两个方法签名的元数据表示是相同的。如:public sealed class Point{ static void Add(out Int32 sx){...} static void Add(ref Int32 sx){...}}//这是不允许的d... 阅读全文

posted @ 2013-02-27 20:58 Gcam 阅读(222) 评论(0) 推荐(0) 编辑

2013年2月26日

存储过程

摘要: 1. 存储过程优点[摘录] a. 存储过程可以使得程序执行效率更高、安全性更好,因为过程建立之后已经编译并且储存到数据库,直接写sql就需要先分析再执行因此过程效率更高,直接写sql语句会带来安全性问题,如:sql注入 b. 建立过程不会很耗系统资源,因为过程只是在调用才执行。 c. 存储过程可以用于降低网络流量,存储过程代码直接存储于数据库中,所以不会产生大量T-sql语句的代码流量。2. 包【含包头与包体】 a. 包头 包含对外可用的函数的声明、存储过程的声明、变量的声明等 b. 包体 包含包的实现,如函数的实现、过程的实现等3. 包头的定义create or replace packge 阅读全文

posted @ 2013-02-26 22:11 Gcam 阅读(209) 评论(0) 推荐(0) 编辑

2013年2月25日

基础(二)

摘要: 小结:1. 静态类【static class】a. 不能被实例化,值类型(如:结构)不能用static修饰,因为CLR总是允许值类型可以被实例化。b. 静态类直接继承自System.Objectc. 静态类不能实现任何接口,因为接口中的方法是要通过接口的实现类实例化后访问的,而静态类是不能实例化的2. Constants【常量】a. 在编译期间赋值,隐式认为是static的,但是在声明时不能用static修饰b. 当我们的代码中引用了一个const常量时,compiler会先在程序集的metadata中查找该常量的声明,然后提取它的值并将其值直接放进IL Code中,也就是说在Runtime时 阅读全文

posted @ 2013-02-25 22:46 Gcam 阅读(190) 评论(0) 推荐(0) 编辑

2013年2月24日

关于基础类型

摘要: 小结:1. 关于值类型与引用类型a. 值类型在线程栈上分配,不受垃圾回收器的控制,减少了托管堆的作用,所有的值类型都继承自System.ValueType, 后者继承自System.Object。b. 引用类型在托管堆上分配,受垃圾回收器的控制。c. 装箱与拆箱 装箱做了哪些操作? 1)统计值类型转引用类型所需的字节数 = 值类型本身所需要的字节数 + 类型对象指针 + 同步块索引 2)在托管堆上分配空间 3)把值类型中的域拷贝到分配的空间中 4)返回在堆中的地址 拆箱做了哪些操作?是不是装箱的相反过程?答案是否定的 拆箱中只把托管堆中的域拷回给值类型,但并不会拷贝类型对象指针以及同步块索引, 阅读全文

posted @ 2013-02-24 11:58 Gcam 阅读(157) 评论(0) 推荐(0) 编辑

2013年2月23日

CLR

摘要: 小结:1. CLR 执行模型(略举3个托管模块,3个Resource files)2. 托管模块(Managed Module)是一个32位或64位的可移植执行文件,主要由IL和Metadata组成。其中Metadata是一系列数据表格,其中一些表格是用来记录该Module中定义的类型和成员,另外还有些数据表是用来记录该Module中引用的外界类型及成员3. CLR核心功能a. 内存管理b. 程序集的加载c. 异常的处理d. 线程同步e. 安全问题:如类型安全,不同的类型之间不能随意的进行转换,在Runtime时,CLR会作严格的检查,CLR允许同类型互转以及子类转成其父类 1)子类转父类 不 阅读全文

posted @ 2013-02-23 20:45 Gcam 阅读(300) 评论(0) 推荐(0) 编辑

2013年2月21日

App_Code文件夹和Bin文件夹

摘要: 学习于:http://msdn.microsoft.com/zh-cn/library/t990ks23(v=vs.100).aspx如果网站项目包括要由多个页共享的代码,可以将这些代码保存在 Web 应用程序根目录下的两个特殊文件夹的某个文件夹中:编译过的代码(.dll 文件)放入 Bin 文件夹,源代码放入 App_Code 文件夹。 当您创建这些文件夹并在其中存储特定类型的文件时,ASP.NET 将使用特殊方式处理这些文件。1. Bin文件夹可以在 Bin 文件夹中存储编译的程序集(.dll 文件),并且 Web 应用程序任意处的其他代码(如页代码)会自动引用该文件夹。典型的示例是您为自 阅读全文

posted @ 2013-02-21 21:37 Gcam 阅读(642) 评论(0) 推荐(0) 编辑

IIS 7.0的ASP.NET应用程序生命周期概述

摘要: 小结于:http://msdn.microsoft.com/zh-cn/library/bb470252(v=vs.100).aspxIIS 7.0的ASP.NET应用程序生命周期概述(一)结构概述在IIS 7.0集成模式下的请求会经历几个阶段,类似于在 IIS 6.0 中对 ASP.NET 资源的请求所经历的阶段。但是,在 IIS 7.0 中,这些阶段包含多个额外的应用程序事件,如MapRequestHandler、LogRequest 和 PostLogRequest事件。IIS 7.0和IIS 6.0的处理阶段之间的主要区别在于ASP.NET如何与IIS服务器集成。在IIS 6.0中,有 阅读全文

posted @ 2013-02-21 09:34 Gcam 阅读(189) 评论(0) 推荐(0) 编辑

2013年1月31日

DropDownList 和 DIV 重叠的问题

摘要: IE6中,在dropdwonlist上方显示一个div,会发现对div使用的z-index没有用,dropdownlist会显示在这个div的前面,与div发生了重叠。原来是dropdownlist和 list boxes 没有z-index属性,它们是窗口级控件,解决方案可以参考http://www.codeproject.com/Articles/20263/DropDownList-and-DIV-overlapping-problem,方法是在div显示的地方完全重合的显示一个和该div一样大小的iframe.可以很容易控制这个iframe的大小,因为div的宽度和高度是已知的代码:在 阅读全文

posted @ 2013-01-31 23:00 Gcam 阅读(165) 评论(0) 推荐(0) 编辑

IIS5和IIS6的Asp.net应用程序生命周期事件和Global.asax文件

摘要: 学习于:http://msdn.microsoft.com/zh-cn/library/ms178473(v=vs.100).aspx1. Asp.net应用程序生命周期事件和Global.asax文件在应用程序的生命周期期间,应用程序会引发可处理的事件并调用可重写的特定方法。若要处理应用程序事件或方法,可以在应用程序根目录中创建一个名为 Global.asax 的文件。如果创建了Global.asax文件,ASP.NET会将其编译为从HttpApplication类派生的类,然后使用该派生类表示应用程序。public class Global : System.Web.HttpApplica 阅读全文

posted @ 2013-01-31 22:23 Gcam 阅读(430) 评论(0) 推荐(0) 编辑

导航