Questions tagged «clr»

4
为什么结构和类在C#中是分开的概念?
在用C#编程时,我偶然发现了一个我无法理解的奇怪的语言设计决策。 因此,C#(和CLR)具有两种聚合数据类型:(struct值类型,存储在堆栈上,没有继承)和class(引用类型,存储在堆上,具有继承)。 首先,这种设置听起来不错,但随后您偶然发现了采用聚合类型参数的方法,要弄清楚它实际上是值类型还是引用类型,必须找到其类型的声明。有时可能会造成混乱。 解决该问题的公认方法似乎是将所有structs 声明为“不可变的”(将其字段设置为readonly),以防止可能的错误,从而限制structs的用途。 例如,C ++使用了更多可用的模型:它允许您在堆栈或堆上创建对象实例,并按值或按引用(或按指针)传递它。我一直听到C#的灵感来自C ++,但我不明白为什么它不采用这种技术。结合class并struct进入一个结构有两个不同的分配方案(堆和栈)和周围将它们作为值或(明确)经由引用ref和out关键字似乎是一个很好的事情。 问题是,为什么在C#和CLR中class并struct成为单独的概念,而不是具有两个分配选项的一种聚合类型?

2
IronScheme是否完整或稳定到值得学习?
维基百科上提到IronScheme是失败项目IronLisp的继承者,该项目将Lisp引入CLR和.NET,就像Clojure为JVM所做的那样。有人有使用这种语言的经验吗?它看起来相当完整(99%),但是我不确定如何判断是否值得花时间摆弄它。稳定或完整,我的意思是将其用于实际项目,而不仅仅是摆弄工具和Project Euler风格问题。
17 .net  lisp  scheme  clr 

4
C#中的常量
为何编译器将常量值存储在程序集元数据中?它们是否直接从程序集元数据嵌入到中间语言代码中?
9 c#  clr  compilation 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.