|
|
1
8
|
|
|
2
3
在.net中,结构实例方法在语义上等价于带有额外
在语义上是等价的,除了一个区别:只有在
这就给.net语言的设计者带来了一个问题:不允许在只读结构上使用任何成员函数会很烦人,但他们不想允许成员函数写入只读变量。他们决定“punt”,这样在只读结构上调用一个实例方法将生成该结构的一个副本,调用该结构上的函数,然后丢弃它。这样做的效果是减慢对不编写底层结构的实例方法的调用,并使之成为这样,以便尝试使用在只读结构上更新底层结构的方法将产生错误 不同的破碎语义 如果直接将其传递给struct,将实现什么。请注意,在没有副本就不正确的情况下,副本占用的额外时间几乎永远不会产生正确的语义。
我在.net中的一个主要问题是(至少在4.0版,可能在4.5版)仍然没有一个属性,结构成员函数可以通过它来指示是否修改
|
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |