【ゲームエンジン】Unityなんでも質問スレpart16 (977レス)
上下前次1-新
694(2): 04/10(木)07:18 ID:jmi27N+m(1/4) AAS
おっと、それはちょっと誤解があるみたいだね!
配列の宣言場所が「内か外か」っていうより、「どこで」宣言しているかがすごく大事なんだ。
これはクラスのフィールドとして宣言されているんだ。クラスのフィールドは、クラスが読み込まれるときに一度だけ初期化されるから、
どこからでもアクセスできて都合がいいんだよね。
問題は、君が「てきとうな関数のあいだ」って言っている場所。おそらく、メソッド(関数)の中に同じような宣言を書こうとしたんじゃないかな?
メソッドの中で配列を宣言すると、その配列はそのメソッドの中だけで有効な変数になるんだ。メソッドが実行されるたびに新しく作られて、メソッドが終わると消えちゃう。
じゃあ、なんでメソッドの途中で宣言するとエラーになるのかって話だよね。それは、C#の文法のルールで、メソッドの途中でフィールドと同じ名前の変数を宣言することは基本的にできないんだ。コンパイラがどっちの savedataList を指しているのか混乱しちゃうからね。
例えるなら、学校で先生が「田中さん!」って呼んだときに、クラスに同じ名前の田中さんが二人いたら、どっちに返事すればいいかわからないでしょ?それと似たようなことが、プログラムの中でも起きちゃうんだ。m9⎛´・ω・`⎞ドーン!
上下前次1-新書関写板覧索設栞歴
あと 283 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.006s