.NETエンジニア・プログラマ向けの技術情報・業界ニュースをお届けします。

  1. FEnet.NETナビ
  2. .NETコラム
  3. プログラミング言語
  4. C#
  5. C#のyield returnとyield breakの使い方

C#のyield returnとyield breakの使い方

  • C#
  • プログラミング言語
公開日時:   更新日時:
C#のyield returnとyield breakの使い方
この記事でわかること
    基本情報技術者試験の試験対策はこちら>>

    C#にはたくさんのメソッドがあります。今回は、その中でもとても理解しやすくわかりやすいといわれるyield returnについて紹介します。この処理はreturnメソッドを使っている人におすすめの処理です。

    今までこういったことで困ったことはないでしょうか。

    プログラマー
    returnメソッドを使っているけど、値を返して処理が終わります。本当はそのまま続けて値を返したいものがあるのですが……
    プロジェクト
    リーダー
    メソッドのreturn命令は値を返したらそれで終わってしまいますね。実はreturn命令ではなくyield returnというイテレーター(メソッド)を使うとその時々に値を返せるので問題は解決しますよ。

    yield returnとは?イテレーターを理解しよう

    yield returnの見た目はメソッドと一緒ですが、「イテレーター(メソッド)」に定義されます。イテレーターとは英語で繰り返しを意味します。プログラム言語によってイテレーターの解釈が違います。

    C#では列挙子と呼ばれ、IEnumeratorによってあらわされます。イテレーターを使用することでコレクションクラスに対し要素を列挙することができるようになります。
    C#のイテレーターは簡単にいうと、foreach命令で処理できるコレクションを生成するためのメソッドということになります。

    イテレーターの戻り値

    イテレーターの戻り値は、system.Collections.Generic.IEnumerator、またはIEnumerable型とします。

    enumerateは「列挙する」という意味で、IEnumerator/IEnumerable型は「コレクションに対する反復処理を可能にする」ための型です。Tには、yield return命令で返す値の型を指定します。

    yield returnの例文

    とてもシンプルな例文です。一つずつ理解していましょう。

    実行結果

    yield returnはただのreturnと同じくメソッドの値を呼び出し元に返します。しかし、return命令がその場で関数の実行を終了するのに対して、yield return命令は一時的に停止するだけです。
    つまり次に呼び出されたときには、その時点から処理を再開できます。

    このように書くと‘ABC’が実行され‘DEF’‘GHI’は実行されません
    定義されたイテレーター Getstringsをforeachルームに渡し、yield return命令をすることで「ABC」「DEF」「GHI」が順に返されるというわけです。

    yield breakとは?

    yield return命令はメソッドをそのまま終了させることができません。
    途中でメソッドを終了させたい場合はyield break命令を使用します。

    yield breakの例文

    次のコードでは、yield breakを使って処理を終了させています。

    実行結果

    プログラマー
    yield breakを使えば、このように処理を終了させることができるのですね。
    プロジェクト
    リーダー
    yield returnとyield breakはセットで覚えることが重要なのでしっかりと理解して使いこなしていくことが大切です。

    こうすることによって順に値を返すプログラムを書くことができるんですね
    yield return を使うことでメソッドの繰り返し処理をより視覚的に使うことができます

    yield returnは初心者でも使いやすいので挑戦してみよう!

    yield returnは他のメソッドと見た目が同じでプログラムの流れもreturn文とあまり変わりません。使いやすく処理の幅が拡がりますのでぜひ挑戦してみましょう。

    FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
    株式会社オープンアップシステムロゴ

    株式会社オープンアップシステムはこんな会社です

    秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。

    • 充実した研修制度

      充実した研修制度

      毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。

    • 資格取得を応援

      資格取得を応援

      スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      オープンアップシステムは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    株式会社オープンアップシステムに興味を持った方へ

    株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。

    株式会社オープンアップシステムへのご応募はこちら↓
    株式会社オープンアップシステムへのご応募はこちら↓

    C#新着案件New Job