2017-08-25 17 views
0

C++の数年後、Unityとは別の言語(C#)でダイビングしています。私はファーストクラスの割り当てをしています。私の教授はいくつかの変数をprivateとして宣言していますが、宣言時にすぐに初期化しています。 C++ではプライベートブロック内のプライベートデータメンバを決して初期化するのではなく、コンストラクタで初期化します。私が読んだところでは、MonoBehaviourから派生したクラスではコンストラクタを使用しません。だから私の質問は:Unityのクラス変数を初期化する最良の方法

C#のクラスでの宣言時にプライベートオブジェクト(文字列、intsなど)を初期化するのはいいですか?あるいは、これはC++のようにしてはいけないことですが、他の場所で初期化する必要がありますか?

答えて

1

を実装している場合には、[スタート]()メソッドでそれを初期化することも可能です。

最初にまずC#は自動的に既定値を共通型(int> 0、char> 0( '\ 0')、浮動小数点0.0f、参照型null ...)にします。特定の初期値(例えば、最小値を返す関数を意図したintに最大値を与える)を含む特定の動作をしていない限り、それらを初期化する必要があります。 このプロパティは構造体に拡張されます(intを含む構造体と文字列は自動的に0に初期化され、それらのフィールドはnull)。

一般的なやり方では、カスタムの割り当て/初期化が必要なものは、可能であれば通常はすべてコンストラクタで行います。 externユーザーに使用します。

Unityの場合は、開始()でも初期化がうまくいかなければなりません。

あなたの教授方法はもちろん受け入れられます。情報の一部: Initialization - Stack Overflow

0

うん、それは本当に大丈夫ですが、彼らは、私はあなたの質問、むしろグッドプラクティスへのストレートな答えがある事をしませんMonoBehaviour

関連する問題