日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Unity中的值传递与引用传递

發(fā)布時(shí)間:2024/6/30 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Unity中的值传递与引用传递 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. 值類(lèi)型

  值類(lèi)型變量本身保存了該類(lèi)型的全部數(shù)據(jù),當(dāng)聲明一個(gè)值類(lèi)型的變量時(shí),該變量會(huì)被分配到棧(Stack)上。

2. 引用類(lèi)型

  引用類(lèi)型變量本身保存的是位于堆(Heap)上的該類(lèi)型的實(shí)例的內(nèi)存地址,并不包含數(shù)據(jù)。當(dāng)聲明一個(gè)引用類(lèi)型變量時(shí),該變量會(huì)被分配到棧上。如果僅僅只是聲明這樣一個(gè)變量,由于在堆上還沒(méi)有創(chuàng)建該類(lèi)型的實(shí)例,因此,變量值為null,意思是不指向任何類(lèi)型實(shí)例(堆上的對(duì)象)。對(duì)于變量的類(lèi)型聲明,用于限制此變量可以保存的類(lèi)型。?

3. Unity中的值類(lèi)型與引用類(lèi)型

  值類(lèi)型包括結(jié)構(gòu)體(struct)和枚舉(enum)。

  引用類(lèi)型包括類(lèi)(class)、接口(interface)、委托(delegate)、數(shù)組(array)等。

4.說(shuō)點(diǎn)人話(huà)

  常見(jiàn)的簡(jiǎn)單類(lèi)型如short、int、long、float、double、byte、char等其本質(zhì)上都是結(jié)構(gòu)體,對(duì)應(yīng)struct System.Int16、System.Int32、System.Int64、System.Single、System.Double、Syetem.Byte、System.Char,因此它們都是值類(lèi)型。但string和object例外,它們本質(zhì)上是類(lèi),對(duì)應(yīng)class System.String和System.Object,所以它們是引用類(lèi)型。

  但是string又有值傳遞的效果,這是因?yàn)閟tring是常量,不能更改,所以如果在函數(shù)里更改的話(huà),其實(shí)是生成了另外一個(gè)string,但是原來(lái)的string還在,函數(shù)外的string還是原來(lái)的string。函數(shù)里的string指向另外一個(gè)新生成的string,給人一種值傳遞的假象。

string a = "aaa"; //==> a----->new String("aaa") string b = a; //==> b----->a, 傳引用 b = "bbb"; //==> b----->new String("bbb"), 傳引用,b指向了一個(gè)新的字符串,a并沒(méi)有變。

  Vector3本質(zhì)是結(jié)構(gòu)體(struct),所以是值類(lèi)型。

  組件(component)本質(zhì)是類(lèi)(class),所以是引用類(lèi)型。

轉(zhuǎn)載于:https://www.cnblogs.com/DonYao/p/8662148.html

總結(jié)

以上是生活随笔為你收集整理的Unity中的值传递与引用传递的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。