随笔分类 - Professional C# 2008
C#高级编程
摘要:协变、抗变英文分别是 Covariance 、Contravariance ,形容词为 '-ce '==> '-t ' 这是数学和物理学术语,在OO领域中也有应用。 “共变”、“逆变”是一种译法,另外一种译法是“协变”、“抗变”。特别在OO领域,基本上都是用后面这组。此外还有“不变(N...
阅读全文
摘要:常量和字段都是类型的数据成员,但是区别却是很大的。 1. 常量的值永远不会改变。字段有多种类型,非只读字段的值是可以改变的。 2. 常量的值必须在编译时就确定,也就是说在定义时就要赋值。编译后常量的值就保存在程序集的元数据中;字段是存储在动态内存中,在运行时才能得到字段的值。 3. 常量的定义必须用基元类型,关于基元类型可以参考(CLR Via C# 学习笔记(1) 基元类型 值类型 引用类...
阅读全文
摘要:Imports,Using基本一样,有两个作用 1、将后面命名空间中所有的名字导入到当前命名空间 2、为后面的名字取一个当前命名空间可以访问的别名。 比如StreamWriter这个类在System.IO命名空间,用的时候得写System.IO.StreamWriter才能找到,这通常太麻烦,因此只要写ImportsSystem.IO,就会把所有System.IO下面的名字,包括StreamWri...
阅读全文
摘要:Q:在C#里,我们如何表达枚举类型?A:你可以使用enum关键字(keyword)来声明一个枚举类型(enum type)://Code#01 publicenumAlignment { Left, Center, Right } --------------------------------------------------------------------------------Q:C#...
阅读全文
摘要:一.组件 (com),是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术。在com构架下,人们可以开发出各种各样的功能专一的组件,然后将它们按照需要组合起来,构成复杂的应用系统。由此带来的好处是多方面的:可以将系统中的组件用新的替换掉,以便随时进行系统的升级和定制;可以在多个应用系统中重复利用同一个组件;可以方便的将应用系统扩展到网络环境下;com与语言,平台无关的...
阅读全文
摘要:托管代码 (managed code) 由公共语言运行库环境(而不是直接由操作系统)执行的代码。托管代码应用程序可以获得公共语言运行库服务,例如自动垃圾回收、运行库类型检查和安全支持等。这些服务帮助提供独立于平台和语言的、统一的托管代码应用程序行为。 托管代码是可以使用20多种支持Microsoft .NET Framework的高级语言编写的代码,它们包括:C#, J#, Microsof...
阅读全文
摘要:简介 在计算机科学中,内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内存的控制,因而造成了内存的浪费。内存泄漏与许多其他问题有着相似的症状,并且通常情况下只能由那些可以获得程序源代码的程序员才可以分析出来。然而,有不少人习惯于把任何不需要的内存使用的增加描述为内存泄漏,即使严格意义上来说这...
阅读全文
摘要:在.NET的所有技术中,最具争议的恐怕是垃圾收集(Garbage Collection,GC)了。作为.NET框架中一个重要的部分,托管堆和垃圾收集机制对我们中的大部分人来说是陌生的概念。在这篇文章中将要讨论托管堆,和你将从中得到怎样的好处。为什么要托管堆?.NET框架包含一个托管堆,所有的.NET语言在分配引用类型对象时都要使用它。像值类型这样的轻量级对象始终分配在栈中,但是所有的类实例和数组都...
阅读全文