C#
1bool A(int a) 2{ 3 if(a >= ~~~~) 4 { 5 yield return true; 6 yield break; 7 } 8 9 yield return false; 10}
*このコードはイメージとして書かせていただきました
このようにif(~~~)の内容がtrueだったらその中だけを読み込んで、breakさせたいのですが、
IEnumeratorでもvoidでもうまくいきません。
IEnumeratorだと戻り値が純粋なboolではないし、voidなどだと途中抜けさせられません。
boolが返ってくる途中抜けメソッドを作るにはどうすればいいでしょうか。
if/elseを使うやり方以外でお願いします。
bool を返しているだけなので、yield も使わず return true でいいとしか思えません。それでは何かまずいのですか?
それ以下の処理を呼びたくありません。return trueだとそれ以下の処理が呼ばれてしまうと思います。
なんかエライ勘違いしてますね。。
教えていただけると嬉しいです、、、、
それ以前にコンパイルエラーになりますが、正しく実装した場合、yield break より後は呼ばれないはずです。どこの情報ですか?
何がしたいかわからないので、とりあえず動くであろうサンプルを書いておきます。
IEnumerable<bool> A(int a)
{
for (int i = 0; i < a; i++)
{
if (i % 2 == 0)
{
yield return true;
yield break;
}
yield return false;
}
}
回答1件
あなたの回答
tips
プレビュー