从两者的声明上来看,公共字段只是类用public修饰符所公开的简单公共变量,而属性则是对字段的封装,它使用get和set访问器来控制如何设置或返回字段值。 由于属性的实质是方法(get或set方法),在IL中是没有属性的概念的。所以对于开发过程中常用的赋值和取值操作来说,使用公共变量肯定会比使用属性 ...
分类:
其他好文 时间:
2016-08-08 14:27:41
阅读次数:
101
首先从两者的声明上来看,公共字段只是类用public修饰符所公开的简单公共变量,而属性则是对字段的封装,它使用get和set访问器来控制如何设置或返回字段值。 由于属性的实质是方法(get或set方法),在IL中是没有属性的概念的。所以对于开发过程中常用的赋值和取值操作来说,使用公共变量肯定会比使用 ...
分类:
其他好文 时间:
2016-08-05 11:40:02
阅读次数:
130
the book said: try result:false IL: but ...
名称 说明 Add 将两个值相加并将结果推送到计算堆栈上。 Add.Ovf 将两个整数相加,执行溢出检查,并且将结果推送到计算堆栈上。 Add.Ovf.Un 将两个无符号整数值相加,执行溢出检查,并且将结果推送到计算堆栈上。 And 计算两个值的按位“与”并将结果推送到计算堆栈上。 Arglist ...
分类:
Web程序 时间:
2016-08-03 10:17:02
阅读次数:
260
.NET CLR 和 Java VM 都是堆叠式虚拟机器(Stack-Based VM),也就是说,它们的指令集(Instruction Set)都是采用堆叠运算的方式:执行时的资料都是先放在堆叠中,再进行运算。JavaVM 有约 200 个指令(Instruction),每个指令都是 1 byte ...
分类:
Web程序 时间:
2016-08-03 10:16:13
阅读次数:
334
在.NET之前的技术中,进程作为独立的边界来使用,每个进程都有其私有的虚拟内存;运行在一个进程的应用程序不能写入另一个应用程序的内存,也不会因为这种方式破坏其他应用程序。该进程用作应用程序之间的一个独立而安全的边界。.NET体系结构应用程序有一个新的边界:应用程序域。使用托管IL代码,运行库可以确保 ...
当有如下这样类似的情况出现的时候,可以有更好的优化方式来处理,那就是分部方法 以上的方式生成如下的IL代码,这里会无谓的去调用一个没有实现的方法,没有意义的: 优化方式:分部方法 改进后的IL 代码实现如下: 1. 没有实现分部方法的时候: 2. 实现了分部方法的时候: 通过这样的方式优化后,更加灵 ...
分类:
其他好文 时间:
2016-07-20 19:08:12
阅读次数:
126
0. 目录 C#6 新增特性目录 1. 老版本的代码 早C#3中引入的集合初始化器,可是让我们用上面的语法来在声明一个字典或者集合的时候立即初始化一些项进去,其实在C#3中这是个语法糖,实质编译后的结果是调用字典或者集合的Add方法逐一添加这些项。但是有一点小小的不直观。先看看这个版的IL吧: 本质 ...
11.illiterate 不识字的 in-前缀,表否定(记忆:原音改写自前缀un-),像水一样的前缀,水货前缀(同化) 同化具体指:在lr前变成il/ir(r/l是弱音),在bp前变成m(为了让单词念起来更顺口,参考下面) 妈妈m:必须闭着嘴读(哺乳音) 奶奶n:必须张着嘴读 b/p:必须闭着嘴读 ...
分类:
其他好文 时间:
2016-07-08 01:34:10
阅读次数:
266
List<T> 可以通过 .Sort()进行排序,但是当 T 对象为自定义类型时(比如自定义模型),就需要 IComparable接口重写其中的方法来实现,实现代码如下: 如果不继续IComparable接口,也可以直接在 .Sort()方法里面写,代码如下: 按照功能排序:List<T> < IL ...
分类:
编程语言 时间:
2016-07-07 19:18:52
阅读次数:
155