首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#结构数组和赋值性能

C#结构数组和赋值性能
EN

Stack Overflow用户
提问于 2012-03-14 23:56:56
回答 3查看 712关注 0票数 2

假设我有这样的代码:

代码语言:javascript
复制
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)呢?

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-15 00:04:12

(1)复制数组的引用

(2)相同

数组变量是引用类型,与其基础元素类型无关,因此无论何时将数组变量赋给另一个数组变量,都只是复制引用。

票数 1
EN

Stack Overflow用户

发布于 2012-03-14 23:59:19

Array是一种引用类型,因此您只是将引用复制到数组实例。

票数 3
EN

Stack Overflow用户

发布于 2012-03-14 23:59:18

C#中的数组是引用类型。像赋值这样的项目会创建引用与值的副本。在(1)的末尾,您得到了对存储在container中的数组的本地引用

注意:在C#中,更恰当的说法是“引用对象”而不是“引用内存”。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9705422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档