Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

การใช้ผลตอบแทนผลตอบแทนใน C # คืออะไร?


คีย์เวิร์ด Yield ช่วยในการทำซ้ำ stateful แบบกำหนดเองบนคอลเล็กชัน ความหมายเมื่อเราใช้คีย์เวิร์ดให้ผล การควบคุมจะเลื่อนไปมาจากฟังก์ชันผู้โทรไปยังแหล่งที่มาและในทางกลับกัน

ตัวอย่าง

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

ในตัวอย่างข้างต้น ในแต่ละวิธีหลัก เราจะวนซ้ำผ่านรายการตัวเลขของยอดรวมที่กำลังทำงานอยู่ ดังนั้นเมื่อใดก็ตามที่มีการเรียกผลตอบแทนกลับมา ตัวควบคุมจะกลับไปที่วิธีการหลักสำหรับแต่ละลูปและพิมพ์ค่า หลังจากพิมพ์ค่าแล้ว ตัวควบคุมจะไปที่ยอดรวมการทำงานแต่ละครั้งอีกครั้ง สิ่งหนึ่งที่ต้องสังเกตที่นี่คือค่าก่อนหน้านั้นยังถูกรักษาไว้ พูดง่ายๆ ก็คือ คีย์เวิร์ดของผลตอบแทนจะสร้างการแจงนับแบบเฉื่อยเหนือรายการคอลเลกชั่นที่มีประสิทธิภาพมากกว่ามาก