[過去ログ] ふらっと C#,C♯,C#(初心者用) Part153 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
654
(1): デフォルトの名無しさん (アウアウウー Saa3-NE3x) [sage] 2022/01/15(土) 01:05:14.25 ID:mkRG7Oi7a(1/4) AAS
>>649
649(3): デフォルトの名無しさん (ワッチョイ ffbd-qPHf) [] 2022/01/15(土) 00:11:45.90 ID:TZiSYT8I0(1) AAS
質問させてください

using System.Collections.Generic;

class TestEnumerable
{
static public Ienumerable FromTo()
{
yield return 1;
yield return 3.14;
}

static void Main(string[] args)
{
foreach(var I in FromTo())
{
Console.Write(I);
}
}
}

上記のようなコードがあった場合
yield return1を表示、続きから実行されて
yield return3.14を表示すると思うのですが
そのあと、メソッドが終了した場合の処理がイメージできません

FromTo()メソッドが終了した後は何か値がreturnされるのでしょうか?
FromTo()メソッド終了時の挙動の詳細を教えてほしいです
メソッドのシグネチャのみたまんま
FromToはIEnumerableを返すのであって1とか3.14を返すんじゃない。

何言ってるのか理解できなかったら川俣さんの記事のイテレーターの
説明でも読んでもらった方が早いよ。
663
(1): デフォルトの名無しさん (ドコグロ MM4f-KcIn) [sage] 2022/01/15(土) 12:29:33.15 ID:mY1vrnaaM(1) AAS
>>651
651(1): デフォルトの名無しさん (テテンテンテン MM4f-VpI/) [sage] 2022/01/15(土) 00:20:28.44 ID:dZ7wz90eM(1) AAS
yieldを使ってるメソッドの末尾には
「yield break」が暗黙のうちに挿入される、みたいなイメージをもっておけばいいんじゃないかな
有能
>>654,662
662(1): デフォルトの名無しさん (ワッチョイ 7f01-KDxU) [sage] 2022/01/15(土) 11:19:56.44 ID:6qmp/Z4R0(1) AAS
>>649
FromTo()が返すのはIEnumerable

foreachは大雑把に言えば↓に展開される
var iterator = FromTo().GetEnumerator();
while (iterator.MoveNext()){
var I = iterator.Current;
Console.WriteLine(I);
}

イテレータとかイテラブルでググるといい
.NETの型名だとIEnumrator<T>とIEnumerable<T>
無能、聞きたいのはお前のチンケな知識じゃねーよ
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.048s