建议16:元素数量可变的情况下不应使用数组在C#中,数组一旦被创建,长度就不能改变。如果我们需要一个动态且可变长度的集合,就应该使用ArrayList或List来创建。 而数组本身,尤其是一维数组,在遇到要求高效率的算法时,则会专门被优化以提升其效率。一维数组也成为向量,其性能是最佳的,在IL中使用...
分类:
编程语言 时间:
2015-08-13 19:33:07
阅读次数:
179
进程初始化时,CLR要保留一块连续的地址空间,这个地址空间最初并没有对应的物理空间。这个地址空间就是托管堆。托管堆还维护着一个指针,称为NextObjPtr。它指向下一个对象在堆中的分配位置。刚开始的时候,NextObjPtr设为保留地址空间的基地址。 IL指令newobj用于创建一个对象。new....
分类:
其他好文 时间:
2015-08-05 00:57:23
阅读次数:
97
select 是常用的异步socket 处理方法 一般用法: # iwtd,owtd,ewtd 分别为需要异步处理的读socket队列, 写socket队列(一般不用), 和错误socket队列, 返回事件的读写和错误socket队列il,ol,el = select(iwtd,owtd...
分类:
编程语言 时间:
2015-08-02 23:11:33
阅读次数:
231
第1章 简单示例 (第2页至第20页)
第3页,倒数第4自然段IL代码由CLR“托管”。CLR托管至少包括三个主要的活动:类型控制、结构化异常处理和垃圾收集。类型控制涉及在执行期间项类型的验证和转换。托管异常处理在功能上与“非托管的”结构化异常处理类似,但它是由CLR执行的而不是由操作系统执行的。垃圾收集涉及对不再使用的对象进行自动标识和释放。
上述段落中红色的“结构化异常处...
分类:
Web程序 时间:
2015-07-31 07:53:58
阅读次数:
144
什么是CLR?CLR,公共语言运行时(Common Language Runtime)是一个由多种语言使用的“运行时”。他的核心功能包括(内存管理、程序集加载、安全性、异常处理和线程同步),可以被面向CLR的所有语言使用。这里的“运行时”,就是一个运行时环境,就像JAVA虚拟机一样。哦,错了,确切的...
分类:
Web程序 时间:
2015-07-27 20:25:07
阅读次数:
162
public static string ObjectToJson(IList IL, params string[] args) { var Json = new StringBuilder(); Json.Append("[")...
分类:
Web程序 时间:
2015-07-25 10:38:38
阅读次数:
109
我们在学习C#的时候通常都会多多少少接触ILDasm和Reflector,这两样工具让我们对C#的理解不会只停留在编译器这个层面
上,而是让我们更深入的穿透编译器。这篇也是希望对IL和Reflector不是很了解或者懒的了解的同学能够重视起来,同样这篇我还是
以QA的形式来告知这两样工具的强大和必要性。
Q:接口中只能存在方法吗?
A: 这个问题,如果你...
浅拷贝:引用成员在被拷贝时,仅被复制原对象中引用成员的地址引用到新生对象,使用复制后的新对象、
若更改引用成员内的值可能会影响源对象
深拷贝:引用成员在被拷贝时,深入拷贝所有引用成员,而不是拷贝地址引用那样简单、新对象中包含的
所有成员、全部是新生对象在使用复制后的新对象不会影响源对象
浅拷贝在.NET中通常使用,System::Object::MemberwiseClone 直接进行快速...
分类:
Web程序 时间:
2015-07-25 07:10:49
阅读次数:
176
LuaTinker的bug和缺陷LuaTinker是一套还不错的C++代码和Lua代码的绑定库,作者是韩国人Kwon-il Lee,作者应该是参考了LuaBind后,为了简化和避免过重而实现的。其官网在http://gpgstudy.com/gpgiki/LuaTinker,但可惜全部是韩文的,而最...
分类:
其他好文 时间:
2015-07-24 17:58:35
阅读次数:
104
概要 现在,在.net开发平台计划,其组成编译:IL代码、资源、程序集清单和类型元数据。我们知道,IL代码就是我们编写的代码。资源就是图片文件。xml文件,及其它文件,只有不清楚的是元数据(在这里将程序集清单是元数据),本片博客主要就是说说对于元数据的理解。元数据是什么? 元数据是什么呢?...
分类:
Web程序 时间:
2015-07-22 09:16:59
阅读次数:
147