03 2011 档案
论证:ValueType的重载的方法到底会不会导致装箱
摘要:前几日,读了刀刀的一篇装箱拆箱 深度理解,刀刀认为由于ValueType中重写了ToString等方法,因此,在调用这些方法时,不会导致装箱,而我的观点正好相反,ValueType中重写的这些方法如果没有在值类型中重写,那么依然会被装箱。 既然两个人都表达了自己的论点,那么,必须要拿出相应的证据,来证明各自的观点。如何证明 刀刀在回复中指出因为IL中没有使用box指令,因此不会发生装箱,不过这个论据并不能让我信服,原因很简单,IL中除了显式的box指令会导致装箱外,还有Constrained+虚方法调用形式(2.0为了支持泛型而加出来的Op),这种方式会导致隐式的装箱。 既然IL不能证明,那.
阅读全文
Grammatica简介
摘要:上个月说到了自定义语言,不过在确定自己的语法后,遇到的第一个难题便是如何解析自己定义的语言,至于如何执行,是这之后的事情。找一个语法解析器 软件中有一点很重要,不要重复造轮子,等等,这话听起来有点怪,自定义语言不也是重复造轮子么? 好吧,我承认我在重复造轮子,不过我的主要目的不是让自己的语言怎么怎么样,而是去更深入的理解那些编程语言,要是运气好,自己找的轮子能够流行起来,那自然更好了。 因此,我要造的是语言,而不是语法解析器,所以不要重复造语法解析器,没有那个时间和精力去消耗在这上面。 所以,随便找了个语法解析器:Grammatica 那么为什么用这个而不用其它的?好吧,没有理由,仅仅是因为.
阅读全文