我想知道那爲什麼當我創建一個自定義類,我要聲明的是這樣一個對象來創建一個對象:團結如何在不使用new關鍵字
Person Bob = new Person;
但隨着Unity的定製類我不「T;例如:
puiblic RaycastHit hit;
public Color myColor;
public RigidBody rB;
我想知道那爲什麼當我創建一個自定義類,我要聲明的是這樣一個對象來創建一個對象:團結如何在不使用new關鍵字
Person Bob = new Person;
但隨着Unity的定製類我不「T;例如:
puiblic RaycastHit hit;
public Color myColor;
public RigidBody rB;
後者例子只是創建一個變量,它可以保持物體的實例。它實際上並沒有創建任何事物的實例。
如果這些變量碰巧是結構體,它們將具有默認值。
RaycastHit
和Color
不是class
es,它們是struct
s。這意味着它們的聲明就像是int
一樣,並且可以在不需要new
的情況下立即投入使用。
RigidBody
另一方面,它是一個class
,所以這個聲明沒有實例化一個對象,它只是聲明瞭一個對象的引用,它必須被實例化或以其他方式進一步獲得。
[閱讀全文](http://stackoverflow.com/questions/2330767/what-is-the-difference-between-instantiated-and-initialized/11423017#11423017) – radarbob
'人鮑勃=新人'贏了'無論如何編譯。 'RigidBody' **是**一類,所以你**將**必須調用'新',所以不知道你從哪裏得到了這個想法從 – MickyD
我投票結束這個問題作爲題外話,因爲問題是如此簡單這對未來的讀者來說不太可能有用 – MickyD