C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#でのyield returnの使用は何ですか?


Yieldキーワードは、コレクションに対してカスタムステートフルイテレーションを実行するのに役立ちます。つまり、yieldキーワードを使用すると、コントロールは呼び出し元の関数からソースに、またはその逆に移動します。

using System;
using System.Collections.Generic;
namespace DemoApplication {
   class Program {
      static List<int> numbersList = new List<int> {
         1, 2, 3, 4, 5
      };
      public static void Main() {
         foreach(int i in RunningTotal()) {
            Console.WriteLine(i);
         }
         Console.ReadLine();
      }
      public static IEnumerable<int> RunningTotal() {
         int runningTotal = 0;
         foreach(int i in numbersList) {
            runningTotal += i;
            yield return (runningTotal);
         }
      }
   }
}

出力

上記のプログラムの出力は

です。
1
3
6
10
15

上記の例では、メインメソッドのそれぞれについて、現在の合計の数値リストをループしています。したがって、yield returnが呼び出されるたびに、コントロールは各ループのmainメソッドに戻り、値を出力します。値を出力した後、コントロールは現在の合計ごとに再び移動します。ここで注意する必要があることの1つは、以前の値も保持されることです。つまり、yieldキーワードは、コレクションアイテムに対して遅延列挙を効果的に作成し、はるかに効率的にすることができます。


  1. C#での「new」キーワードの使用は何ですか?

    newキーワードを使用して、配列のインスタンスを作成します- int [] a = new int[5]; new演算子は、オブジェクトを作成したり、オブジェクトをインスタンス化したりするために使用されます。この例では、新しい-を使用してクラスのオブジェクトが作成されています。 例 using System; namespace CalculatorApplication {    class NumberManipulator {       public void swap(int x, int y) {     &

  2. C#でのsizeofOperatorの使用は何ですか?

    sizeof()データ型は、データ型のサイズを返します。 intデータ型のサイズを見つける必要があるとしましょう- sizeof(int); 二重データ型の場合- sizeof(double); さまざまなデータ型のサイズを見つけるための完全な例を見てみましょう- 例 using System; namespace Demo {    class Program {       static void Main(string[] args) {          Console.Wr