Fre*_*ool 14 c# compiler-construction const reference constants
C#中的引用与C++中的引用非常相似,只是它们是垃圾回收的.
为什么C#编译器支持以下内容如此困难:
const.const,通过它只能const调用成员函数?我相信如果C#支持这个会非常有用.首先,它真的有助于看似广泛的同性恋放弃C#程序员返回裸体引用私人数据(至少这是我在我的工作场所看到的).
或者在C#中我已经缺少了相同的东西?(我知道关键字readonly和const关键字,但它们并没有真正满足上述目的)
Jon*_*eet 17
我怀疑有一些实际原因,以及一些理论上的原因:
虽然现在无法支持它,但它有一个很大的问题:
我同意有一些常量指标是有用的,但我不能看到它发生,我害怕.
编辑:关于Java社区中的这种肆虐已有多年的争论.对相关的bug有很多评论,你可能会觉得有趣.
正如乔恩已经涵盖的那样(当然)const正确性并不像看起来那么简单.C++以一种方式做到了.D做另一种(可以说是更正确/有用)的方式.C#与它调情,但没有做任何更大胆的事情,正如你已经发现的那样(并且可能永远不会好,因为Jon再次覆盖了).
也就是说,我相信Jon的许多"理论原因"在D模型中得到了解决.
在D(2.0)中,const的工作方式与C++非常相似,只是它是完全传递的(因此应用于指针的const将应用于指向的对象,该对象的任何成员,对象具有的任何指针,指向的对象等) ) - 但显而易见的是,这仅适用于您声明为const的变量(因此,如果您已经有一个非const对象并且您使用了一个const指针,那么非const变量仍然可以改变状态).
D引入了另一个关键字 - 不变量 - 它适用于对象本身.这意味着一旦初始化就没有任何东西可以改变状态.
这种安排的好处是const方法可以接受const和不变对象.由于不变对象是功能世界的面包和黄油,而const方法在功能意义上可以被标记为"纯粹" - 即使它可以与可变对象一起使用.
回到正轨 - 我认为我们现在只是(后半部分的顽皮分子)了解如何最好地使用const(和不变量)..Net最初是在事情变得更加朦胧的时候定义的,所以并没有过多地承诺 - 现在改造已经太晚了.
我很想在.Net VM上看到D的端口,但是:-)
| 归档时间: |
|
| 查看次数: |
1186 次 |
| 最近记录: |