[過去ログ] 【ゲームエンジン】Unityなんでも質問スレpart16 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
693: 名前は開発中のものです。 [sage] 2025/04/10(木) 06:59:20.38 ID:cqg7KESu(1/6) AAS
質問です

配列の宣言たとえば

public static int[] savedataList = new int[20];

みたいのを、冒頭付近に書くと正常稼働しますが、てきとうに関数のあいだに書くとエラーを起こします
内か外かだけだと思ってたんですが、順番も大事なんですか
696
(1): 名前は開発中のものです。 [sage] 2025/04/10(木) 08:24:43.80 ID:cqg7KESu(2/6) AAS
>>694
694(2): 名前は開発中のものです。 [] 2025/04/10(木) 07:18:45.17 ID:jmi27N+m(1/4) AAS
おっと、それはちょっと誤解があるみたいだね!
配列の宣言場所が「内か外か」っていうより、「どこで」宣言しているかがすごく大事なんだ。
これはクラスのフィールドとして宣言されているんだ。クラスのフィールドは、クラスが読み込まれるときに一度だけ初期化されるから、
どこからでもアクセスできて都合がいいんだよね。
問題は、君が「てきとうな関数のあいだ」って言っている場所。おそらく、メソッド(関数)の中に同じような宣言を書こうとしたんじゃないかな?
メソッドの中で配列を宣言すると、その配列はそのメソッドの中だけで有効な変数になるんだ。メソッドが実行されるたびに新しく作られて、メソッドが終わると消えちゃう。
じゃあ、なんでメソッドの途中で宣言するとエラーになるのかって話だよね。それは、C#の文法のルールで、メソッドの途中でフィールドと同じ名前の変数を宣言することは基本的にできないんだ。コンパイラがどっちの savedataList を指しているのか混乱しちゃうからね。
例えるなら、学校で先生が「田中さん!」って呼んだときに、クラスに同じ名前の田中さんが二人いたら、どっちに返事すればいいかわからないでしょ?それと似たようなことが、プログラムの中でも起きちゃうんだ。m9⎛´・ω・`⎞ドーン!
関数と関数のあいだって言ったんですよ
コピロットて関数の中って決めつけてダラッだらと言ってきますよね
やりなおし
697
(1): 名前は開発中のものです。 [sage] 2025/04/10(木) 08:26:00.97 ID:cqg7KESu(3/6) AAS
>>695
695(1): 名前は開発中のものです。 [sage] 2025/04/10(木) 08:06:49.31 ID:qoL88sye(1/2) AAS
ダメな人はエラーメッセージ読まないよね
配列がらみだと、コンパイルは成功し、処理が中断されるだけでエラーも何も吐かないことが多い
699
(1): 名前は開発中のものです。 [sage] 2025/04/10(木) 09:23:48.93 ID:cqg7KESu(4/6) AAS
>>694
「内か外か」っていうより、「どこで」宣言しているかがすごく大事 

って言っておきながら、内か外かの話しかしてないじゃん
どこで宣言するべきだって?
701
(1): 名前は開発中のものです。 [sage] 2025/04/10(木) 09:47:34.64 ID:cqg7KESu(5/6) AAS
>>700
700(1): 名前は開発中のものです。 [] 2025/04/10(木) 09:37:14.61 ID:jmi27N+m(3/4) AAS
>>699
エラーの内容書けつってんだろ!この池沼野郎!m9⎛´・ω・`⎞ドーン!
>>697

エラーなんて吐かずにしれっと何もせず止まるんですよ
よくあるでしょそういうの
知らないのかな
706
(1): 名前は開発中のものです。 [sage] 2025/04/10(木) 20:47:12.01 ID:cqg7KESu(6/6) AAS
あるんだって
知らないだけじゃん
どのみちないことの証明できないやろ
こちとら実例を体験してんだから反証できんやろがい
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.047s