C#, C♯, C#相談室 P ..
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
273:デフォルトの名無しさん 07/09/03 15:54:20 配列を使いましょう 274:デフォルトの名無しさん 07/09/03 16:06:14 >>271 たとえば string[] strArray = new str[]{"a","b","c"] foreach(string str in strArray) { s="d" } ってやってもstrArrayには反映されない。 foreachの列挙子はIEnumerableの実装いかんによっては、何を 参照しているのか全く保障されない。 IEnumeratorは上記の例のようにコピーを返してくるかも知れない。 あと、IEnumuratorの実装クラスは「列挙」できればよく、要素の概念 を持たないものだってあるからね。 MSDNのIEnumerableのサンプルをみてみそ。 275:デフォルトの名無しさん 07/09/03 16:30:21 >>271 「変数の使いまわし」ができないようにするのが最近の流行だから。 バグが減ると信じられてる。 276:デフォルトの名無しさん 07/09/03 16:36:34 foreachって実際は while(strEnumerator.MoveNext()) { string str = strEnumerator.Current; ... } こんな感じでしょ 代入しても無意味というか、元が配列だったりすると 書き換えられるという錯覚を与えかねない というか配列のforeachは for(int i = 0; i < strArray.Length; ++i)... に置き換える最適化がされるらしいから 実際に書き換えられちゃうんでそうするとforeachの意味が変わっちゃう
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
4343日前に更新/133 KB
担当:undef