11 2012 档案

摘要:如何为我们自己的包含非托管资源的类型编写资源管理代码呢?在 .NET 中为我们提供了一种标准的销毁非托管资源的模式,这个标准的模式能够使使用者通过调用IDisposable接口正常释放掉非托管资源,也能够保证使用者在忘记释放资源时使用终结器释放。 阅读全文
posted @ 2012-11-30 09:33 gyzhao 阅读(1812) 评论(7) 推荐(5) 编辑
摘要:我们知道:C#是一门虚拟机语言,C#编译器首先将C#代码编译成IL代码,运行程序时CLR(Common Language Runtime,公共语言运行时)通过调用JIT(just-in-time Compiler,即时编译器)来将IL代动态即时编译成可执行的机器码。GC(Garbage Collector,垃圾收集器)自动为我们的应用程序进... 阅读全文
posted @ 2012-11-27 09:03 gyzhao 阅读(1940) 评论(9) 推荐(5) 编辑
摘要:在.NET环境中,非托管系统资源由开发人员来负责释放,且非托管系统资源必须显式的使用IDisposable接口的Dispose()来释放(详见:了解.NET内存管理机制)。所有封装或使用了非托管资源的类型都实现了IDisposable接口。同时这些类也在终结器中调用Dispose(),保证了开发人员在忘记资源... 阅读全文
posted @ 2012-11-26 08:52 gyzhao 阅读(2597) 评论(8) 推荐(11) 编辑
摘要:ADO.NET 为我们提供了一些查询内存中数据表的API,利用这些API我们可以对内存中的DataTable进行类似于查询数据库查询的操作。当我们想要访问DataTable中特定的行时,可以根据这个表的一列或者多列作为搜索条件来访问这些数据行。和数据库中的表类似,每个DataTable都包括一个可选... 阅读全文
posted @ 2012-11-23 17:05 gyzhao 阅读(2730) 评论(0) 推荐(1) 编辑
摘要:一个类通常会有多个构造函数,并且随着时间的推移,成员变量的增加,功能的改变,构造函数的个数也会不断上升。很多的开发人员一般会先编写一个构造函数,然后将其代码复制粘贴到其他的构造函数当中,以支持在类接口上定义的多个重写构造函数.其实我们不应该这样做,当发现... 阅读全文
posted @ 2012-11-23 09:06 gyzhao 阅读(2005) 评论(5) 推荐(4) 编辑
摘要:我们知道在C#语言中创建一个类型的实例前,就应该初始化该类型的所有静态成员变量。C#语言为我们提供了静态初始化器和静态构造函数。其中,静态构造函数是一个特殊的构造函数,将在其他所有方法执行前以及变量或属性被第一次访问之前将自动调用静态构造函数,且仅执行一次... 阅读全文
posted @ 2012-11-15 17:17 gyzhao 阅读(3961) 评论(7) 推荐(3) 编辑
摘要:一般情况下,一个类都会有多个构造函数。随着时间的推移,成员变量、构造函数不断增加。为了处理这种情况最方便的办法就是:在声明变量的时候进行初始化,而不是在每个构造函数中进行。无论是类成员(静态变量)合适实例变量,我们都应该充分利用初始化器的语法。C#编程在,一般在... 阅读全文
posted @ 2012-11-06 21:59 gyzhao 阅读(2896) 评论(3) 推荐(4) 编辑
摘要:在以前的Web项目中使用的是IIS 6.0,这次项目的服务器使用的操作系统是Windows Server 2008,Web服务器用的是IIS 7.5;在初步部署的时候出现了很多的错误,网上查阅了很多资料,总算是把项目部署完成了。下面把主要的步骤记录下来。项目背景项目使用Microsoft Visual Studio... 阅读全文
posted @ 2012-11-04 19:21 gyzhao 阅读(7897) 评论(3) 推荐(2) 编辑