03 2010 档案
摘要:一款看上去十分舒服的代码配色,会让Coding过程变得惬意,让编写效率提升不少。而Eclipse默认的代码配色实在丑陋,除了关键字为褐色加粗、字符串为蓝色外,其余颜色均为黑色。在这样的配色中,最难分辨的就是局部变量和类型的私有字段(其他好歹可以通过大小写规则来判断,如果代码编写够规范的话)。而且过于单调的颜色,不容易刺激视觉神经乃至中枢神经,会增加疲劳感,带来困意。为了改变这一现状,我们必须对Eclipse的代码配色进行更改。
阅读全文
摘要:Visual Studio的智能感知有多强大,只有用过的人才能切身体会。初用Eclipse时,蜗牛一般的响应速度、输入字母和普通字符时对我的无视、以及自动格式化的丑陋,都令我对Visual Studio产生了无限的怀念。其实Eclipse也是一款优秀的IDE,只要随便搜搜,很多问题都是可以轻松解决的。今天我先来解决一下智能感知的问题。
阅读全文
摘要:本文共三个部分,分别介绍了如何使用Visual Studio IDE为项目添加程序集引用,使用Assembly Linker工具,以及如何在程序集中添加资源文件
阅读全文
摘要:上一篇随笔中讨论的Program.exe不仅仅是一个包含元数据的PE文件,它还是一个程序集。程序集是一个或多个包含类型定义的文件和资源文件的集合。程序集的某个文件用来保存清单(manifest)。清单是另外一组元数据表的集合,主要包含了程序集中一部分文件的名称。这些元数据表还描述了程序集的版本、语言文化、发布者、公有导出类型和组成程序集的所有文件。
阅读全文
摘要:C# FAQ最新的随笔中再次提出了使用表达式树访问对象及其成员的问题,这次讨论的是如何获取对象和属性的值。(该博客两个月前曾提出使用表达式树访问对象、类型和成员,我在第一时间进行了翻译)
阅读全文
摘要:元数据是一个由多个表组成的二进制数据块。表的种类有三种:定义表、引用表和清单(manifest)表。可以通过View—MetaInfo—Show!菜单项(或CTRL+M)以一种可读的方式打开元数据。强烈建议大家体验一下ILDasm。它可以显示大量信息,对这些信息理解得越多,就越能深入理解CLR及其功能。
阅读全文
摘要:2.1节主要介绍.NET Framework的部署目标。2.2节主要介绍如何将一个包含不同类型的源文件,转换为可部署的文件。
阅读全文
摘要:.NET Framework提供了大量其他开发平台没有的优势。但是,很少有公司能够下决心重新设计和实现既有代码。微软意识到了这一点,使CLR提供了一种机制,允许应用程序由托管和非托管的部分组成。
阅读全文
摘要:CLR允许不同语言创建的对象之间能够相互进行通信。换句话说,CLR集成了所有语言,并且允许一种语言创建的对象在另一种完全不同的语言编写的代码中被看做是等同的成员。CLR的标准类型集合、元数据(自描述类型信息)和通用执行环境,使这种集成成为可能。
阅读全文
摘要:类型是CLR的基本,微软创建了一个正式的规约——通用类型系统(Common Type System,CTS)来描述类型的定义和行为。CTS还指定了类型可见性和访问类型成员的一些规则。CTS建立了以程序集作为类型可见性边界的规则,CLR遵循了这些可见性规则。此外,CTS还定义了管理类型继承、虚拟方法、对象生命周期的规则。设计这些规则的目的是使它们的语义可以用现代编程语言方便地表达出来。
阅读全文
摘要:FCL中相关的一些类型放置于一个单独的命名空间中。System命名空间中包含Object,integer、character、string、异常处理、控制台I/O、数据类型转换和格式化、生成随机数、执行数学函数等等。所有应用程序都需要使用System命名空间下的类型。
阅读全文
摘要:NGen.exe工具(本机映像生成器)随.NET Framework一起发布,用来在客户机上安装应用程序时,将IL代码编译为本地代码。由于代码在安装时已经编译了,运行时JIT编译器就无需再次编译,这可以提升程序性能。
阅读全文
摘要:托管程序集中包含元数据和IL。IL是独立于CPU的机器语言,比大多数CPU机器语言都要高级得多。IL可以访问和操作对象类型,包含创建和初始化对象、调用虚方法和直接操作数组元素、抛出和捕获异常的指令。可以将IL看成是一门面向对象的机器语言。
阅读全文
摘要:程序集或者是一个可执行的应用程序,或者是一个包含一组类型的DLL,这些类型供可执行的应用程序使用。CLR负责管理包含在这些程序集中的代码的执行。这意味着主机上必须安装.NET Framework。
阅读全文
摘要:年前的面试经历(二)一文中提出了字符串的内存分配问题,引起园友们的广泛热议。我想程序员应该都是“刨根问底”栏目组的,不把问题刨个稀烂决不罢休。我这里也来简单地讨论一下。
阅读全文
摘要:实际上,CLR直接打交道的是程序集,而不是模块。程序集是一个抽象的概念,首先,它是一个或多个模块或资源文件的逻辑组合(即程序集由多个模块和资源文件组成)。其次,它是复用、安全、版本的最小单元。根据所选择的编译器和工具的不同,可以生成单一文件或多个文件的程序集。在CLR世界里,程序集就是我们称作组件(component)的东西。
阅读全文
摘要:CLR顾名思义,是指可被各种不同编程语言使用的运行时。CLR的核心特性可用于所有面向它的编程语言。例如,运行时使用异常来报告错误,那么所有面向运行时的语言都可以通过异常来得到错误报告。又如,运行时也允许创建线程,因此所有面向运行时的语言也都可以创建线程。
阅读全文