やまちゃんのオーディオブログご挨拶やまちゃんのオーディオブログ既存のブログをこちらへ順次移動します。2018年6月2日それから、1文字列のリストと、2文字列配列のリストと、3クラスのリストは、決定的に違うのは、1は、文字列が値渡しであるのに、2、3は値が格納されている場所を返す参照渡しという点である。2、3をループで回すと、奇妙な現象が起こりやすいので注意したい。(「ListにAddする再、何故か全てのデータがAddしたデータに上書きされてしまいます。値をaddするたびに、すべての要素が、新しく加えた時のaの値に変更されてしまう。これも、1日ぐらい、はまった。それを防ぐには、ループ内で、毎回、「new」により領域確保を行う。ループ内でnewを定義すると、重複定義のエラーの問題が生じうる。クラスのリストについてはこのサイトのとおり行う。普通にnewを繰り返していても、エラーが生じない。文字列配列をnewで繰り返し宣言すると、2回目で重複定義のエラーが出てしまう。これを防ぐには、addの直前で、{}によりローカル変数を設定し、”}”が終わった瞬間にディスポーズによりこの領域確保を廃棄してもらう。テキストデータを読み込み、配列のリストに入れる場合に、以下のようにする。string[3];abc[1]=readline;strlist.add(abc);}そうすると、2度目にループが回ってきても、すでに廃棄したのちだから、新しい領域が確保され、かつ、重複定義のエラーも生じない。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。キーと値が1対1でなければならず、値が複数の場合には登録できない。日本語入力C#で、コンソール型のラズパイ用のプレーヤーのプログラムを書いている。タイトルご挨拶やまちゃんのオーディオブログ既存のブログをこちらへ順次移動します。