1
2
您将看到每个结构有12个字节,因此将其作为一个结构传递比在堆上创建一个字大小的引用(换句话说,使用一个类)要便宜得多。 如果需要一次访问全部10000个,那么即使它们是结构,也会在堆上创建它们的数组。 复制结构与创建声明同一类型的另一个结构并将第一个结构分配给第二个结构一样容易。 |
2
2
您必须使用clone方法的原因是您正在复制数组对象,而不是结构。这适用于复制结构值:
在这种情况下,复制结构当然是毫无意义的,因为您要替换所有的值,但是复制确实有效,只留下两个单独的数组,而不是对同一个数组的两个引用。 一个结构通常应该是不可变的,即它的属性是只读的,这样可以保护您不受以下情况的影响:
这不起作用的原因是MyStructList(0)返回结构的副本。副本的mypoint成员已更改,但结构的副本永远不会写回列表。 这是不变的结构:
使用构造函数创建新值:
您仍然可以复制整个结构值:
|
3
0
要复制结构,请 必须声明新实例 其中。我通常通过在结构中实现自己的clone()方法来实现这一点。例如:
|
4
0
有关Visual Basic 2013的说明: 使用structure2=structure1复制结构 不会将structure1的副本创建到structure2中;而是将structure1的引用分配给structure2。 在这种情况下,访问structure2将提供与structure1相同的字段值。 如果任何structure1字段更改,则使用structure2访问的值也将更改,因为它们指向相同的数据。从这个意义上说,根本不是复制品。 |
Emopusta · 从后端到前端的图像路径不工作 2 年前 |
Asdrubal Hernandez · Linq查询特定数组索引出错 2 年前 |
Niyazi Babayev · 如何在表达式中动态应用表达式? 2 年前 |
Dansih · .Net核心自定义身份验证方案 2 年前 |
lolorekkk · 面板插入。NET WinForm 2 年前 |