假设我有这样的代码:
struct Normal
{
public float x;
public float y;
}
class NormalContainer
{
public Normal[] Normals
{
get; set;
}
}
class Main
{
void Run( NormalContainer container )
{
Normal[] normals = container.Normals // 1 - see below
normals[5].x = 4; // 3 - see below
container.Normals = normals; // 2 - see below
}
}(1)是创建数组的副本,还是引用数组占用的内存?那么(2)呢?
谢谢
发布于 2012-03-15 00:04:12
(1)复制数组的引用
(2)相同
数组变量是引用类型,与其基础元素类型无关,因此无论何时将数组变量赋给另一个数组变量,都只是复制引用。
发布于 2012-03-14 23:59:19
Array是一种引用类型,因此您只是将引用复制到数组实例。
发布于 2012-03-14 23:59:18
C#中的数组是引用类型。像赋值这样的项目会创建引用与值的副本。在(1)的末尾,您得到了对存储在container中的数组的本地引用
注意:在C#中,更恰当的说法是“引用对象”而不是“引用内存”。
https://stackoverflow.com/questions/9705422
复制相似问题