摘要:
"常量性"指的是:对象自创建后,它的值就保持不变。如果在构造函数中就验证了参数的有效性,那么就能够保证之后该变量值始终是有效的——因为已经不能再改变... 阅读全文
摘要:
.NET系统的默认初始化过程会将所有的对象设置为0。我们就会难免创建出一个初始化为0值的值类型,所以我们应该将0作为类型的默认值,可以避免一些不必要的Bug... 阅读全文
摘要:
C#和JAVA不同,在C#中可以创建值类型,而在Java中创建的所有类型都是引用类型。在使用C#开发时,选择值类型还是引用类型对我们的程序的行为会产生很大的影响,所以我们需要对值类型和引用类型的使用场景进行了解和对二者的不同进行区分。C#之所以添加了值类型和引用... 阅读全文
摘要:
Subversion作为一个优秀的开源版本控制系统,使用范围并不仅仅使用与源码的版本控制,它可以是任何文件。在前面(使用SVN进行源码管理(上))我们已经把使用SVN进行版本控制的环境给搭建好了,现在来了解如何使用SVN进行版本控制。在团队开发中,源码版本控制工具是最... 阅读全文
摘要:
在原来的项目中使用的源码管理工具是VSS,由于我的机器在使用时出现了非常奇怪的问题——连结局域网服务器上的VSS,一直连接不上,重新配置和重新安装也无法解决(除非是重装系统,但是没几天就又这样了,可重现);而使用其他的机器作为VSS的服务端就没有这样的问题... 阅读全文
摘要:
如何为我们自己的包含非托管资源的类型编写资源管理代码呢?在 .NET 中为我们提供了一种标准的销毁非托管资源的模式,这个标准的模式能够使使用者通过调用IDisposable接口正常释放掉非托管资源,也能够保证使用者在忘记释放资源时使用终结器释放。 阅读全文
摘要:
我们知道:C#是一门虚拟机语言,C#编译器首先将C#代码编译成IL代码,运行程序时CLR(Common Language Runtime,公共语言运行时)通过调用JIT(just-in-time Compiler,即时编译器)来将IL代动态即时编译成可执行的机器码。GC(Garbage Collector,垃圾收集器)自动为我们的应用程序进... 阅读全文
摘要:
在.NET环境中,非托管系统资源由开发人员来负责释放,且非托管系统资源必须显式的使用IDisposable接口的Dispose()来释放(详见:了解.NET内存管理机制)。所有封装或使用了非托管资源的类型都实现了IDisposable接口。同时这些类也在终结器中调用Dispose(),保证了开发人员在忘记资源... 阅读全文
摘要:
ADO.NET 为我们提供了一些查询内存中数据表的API,利用这些API我们可以对内存中的DataTable进行类似于查询数据库查询的操作。当我们想要访问DataTable中特定的行时,可以根据这个表的一列或者多列作为搜索条件来访问这些数据行。和数据库中的表类似,每个DataTable都包括一个可选... 阅读全文
摘要:
一个类通常会有多个构造函数,并且随着时间的推移,成员变量的增加,功能的改变,构造函数的个数也会不断上升。很多的开发人员一般会先编写一个构造函数,然后将其代码复制粘贴到其他的构造函数当中,以支持在类接口上定义的多个重写构造函数.其实我们不应该这样做,当发现... 阅读全文