Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah kata kunci C# `Hasil` memudahkan lelaran penting?

Bagaimanakah kata kunci C# `Hasil` memudahkan lelaran penting?

Susan Sarandon
Lepaskan: 2025-01-27 17:31:10
asal
336 orang telah melayarinya

How Does the C# `yield` Keyword Simplify Imperative Iteration?

Memahami yield Kata Kunci C# untuk Lelaran Cekap

Diperkenalkan dalam C# 2.0, kata kunci yield menyelaraskan lelaran penting dengan ketara. Pertimbangkan contoh ini, menggambarkan penggunaannya dalam mencipta IEnumerable<T>:

<code class="language-csharp">IEnumerable<object> FilteredList()
{
    foreach(object item in FullList)
    {
        if(IsItemInPartialList(item))
            yield return item;
    }
}</code>
Salin selepas log masuk

Fungsi ini tidak membina senarai lengkap dalam ingatan. Sebaliknya, ia mengembalikan iterator. Setiap kali gelung foreach dalam kod panggilan meminta item seterusnya, fungsi FilteredList() menyambung semula pelaksanaan dari tempat ia berhenti, menilai item seterusnya dan mengembalikannya hanya jika syarat dipenuhi.

Mari kita periksa contoh yang lebih mudah:

<code class="language-csharp">public void Consumer()
{
    foreach(int i in Integers())
    {
        Console.WriteLine(i);
    }
}

public IEnumerable<int> Integers()
{
    yield return 1;
    yield return 2;
    yield return 4;
    yield return 8;
    yield return 16;
    yield return 16777216;
}</code>
Salin selepas log masuk

Menyahpepijat kod ini mendedahkan bahawa Integers() tidak dilaksanakan sepenuhnya sekaligus. Ia dilaksanakan hanya sehingga ia mencapai yield return, mengembalikan satu nilai. Lelaran seterusnya bagi gelung foreach dalam Consumer() menyebabkan Integers() disambung semula, meneruskan dari yield return seterusnya.

Faedah utama menggunakan yield:

  • Lelaran Dipermudah: Mengelakkan pelaksanaan manual IEnumerable dan IEnumerator, menghasilkan kod yang lebih bersih dan ringkas.
  • Kecekapan Memori: Nilai dijana atas permintaan, meminimumkan penggunaan memori, terutamanya bermanfaat apabila berurusan dengan set data yang besar.
  • Kebolehbacaan yang Dipertingkat: Niat kod menjadi lebih jelas, terutamanya apabila mengendalikan proses berulang dan penstriman data. Logik untuk menjana jujukan dibenamkan secara langsung dalam kaedah.

Atas ialah kandungan terperinci Bagaimanakah kata kunci C# `Hasil` memudahkan lelaran penting?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan