2017-08-25 505 views
0

經過幾年的C++之後,我用Unity統一了一種不同的語言(C#)。我正在做我的第一堂課。我的教授有一些變數被宣佈爲私人的,但她正在申報時立即初始化它們。在C++中,我們永遠不會在私有塊中初始化私有數據成員,而是在構造函數中初始化私有數據成員。從我讀到的內容來看,我們不是在派生自MonoBehaviour的類中使用構造函數。所以我的問題是:在Unity中初始化類變量的最佳方式

可以初始化私人對象(字符串,整數等)在一個類中的聲明在C#中嗎?或者這是我們不應該做的事情,比如在C++中,他們應該在其他地方初始化?

回答

1

初始化它在開始()方法我不事沒有直接回答你的問題,而不是好的做法。首先,C#自動爲普通類型(int> 0,char> 0('\ 0'),float 0.0f,null爲引用類型提供默認值,...),所以你不需要需要初始化那些,除非你有一個特定的行爲涉及一個特定的初始值(例如,給一個函數返回一個最小值的int的最大值)。 此屬性擴展到結構體(包含int和一個字符串的結構將自動初始化爲0,併爲這些字段爲null)。

對於引用類型和一般方式,任何需要自定義分配/初始化的東西,如果可能的話,我通常會在構造函數中完成所有這些操作,因爲這是它們的作用,使對象準備好用於extern用戶。

在Unity的情況下,在Start()中初始化也應該是好的。

你的教授方式當然可以接受。更多信息: Initialization - Stack Overflow

0

沒錯這就是真的好,但也有可能,如果他們實現MonoBehaviour