欢迎你客人 ( 登录 | 注册 )

  评价 ---

Entries on Friday 29th May 2009

 | 分类: C# 3.0
entry 2009-5-29, 17:07 PM
-1-

我们用C#、VB.NET语言编写的代码最终都会被编译成程序集或IL。因此用VB.NET编写的代码可以在C#中修改,随后在COBOL中使用。因此,理解IL是非常有必要的。

一旦熟悉了IL,理解.NET技术就不会有障碍了,因为所有的.NET语言都会编译为IL。IL是一门中性语言。IL是先发明的,随后才有了C#、VB.NET等语言。

我们将在一个短而精辟的程序中展示IL。我们还假设读者至少熟悉一门.NET语言。

a.il

.method void vijay()
{

}
随后,我们用IL编写了一个非常短小的IL程序——它显然是不能工作的,并将它命名为a.il。那么我们怎么才能把它编译为一个可执行程序呢?不需要为此而焦急,Microsoft提供了一个ilasm程序,它的唯一任务就是从IL文件中创建可执行文件。

...
更多……

 | 分类: C# 3.0
entry 2009-5-29, 17:04 PM
  在《.NET,你忘记了么?(八)—— 从dynamic到特性误用》一文中,飞林沙同学提到,使用范型会略微降低程序性能,因此在程序中使用List<Ojbect>是不合理的行为,应该使用ArrayList。这一点和老赵平时的观点相悖,老赵一直提倡,在.NET 2.0之后,要尽可能使用List<T>,情愿是List<Object>也不要使用ArrayList。不过个中原因与性能无关,我们稍候再叙述。飞同学的文章让我有了将范型与非范型进行性能比较的想法。这个比较非常容易,不过也得出了一些非常有意思的结论。

范型容器与非范型容器的性能比较
  首先,我们来比较一种最“纯粹”的范型容器,它的目的是避免程序的其他方面对性能的影响。因此,这里我们构造两个最简单的容器,就是简单的模仿ArrayList和List<T>:

public class MyArrayList
{
public MyArrayList(int length)
{
...
更多……

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31


我的 Blog 链接