العائد (C# مرجع)

yieldإشارات أساسية للمترجم هو الأسلوب الذي تظهر فيه المكرر حظر. المحول البرمجي ينشئ فئة لتنفيذ السلوك التي هو يتم التعبير عنها في حظر التكرار. في حظر التكرار، yieldالكلمة الأساسية هو المستخدمة مع returnالكلمة الأساسية بتوفير القيمة لكائن العداد. Th هو هو القيمة التي هو التي تم إرجاعها، على سبيل المثال، في كل تكرار حلقي من foreachالعبارة. yieldالكلمة الأساسية هو أيضا استخدام breakالإشارة لنهاية تكرار. للحصول على مزيد من المعلومات حول تكرارات، راجع المكررات (دليل البرمجة لـ #C). يظهر المثال التالي نموذجين المحصول كشف.

yield return <expression>;
yield break;

ملاحظات

في العائد ترجع العبارة، expressionهو تقييم والتي يتم إرجاعها كقيمة لكائن الالعداد؛ expressionأن يكون convertible ضمنياً إلى نوع العائد للتكرار.

في yield breakالعبارة، التحكم هو unconditionally التي يتم إرجاعها إلى المستدعي المكرر، الذي هو أما IEnumerator.MoveNextأسلوب (أو به عام System.Collections.Generic.IEnumerable<T>النسخة المطابقة) أو Disposeالأسلوب لكائن العداد.

yieldكشف يمكن أن تظهر داخل iteratorحظر، يمكن تطبيق كنص الأسلوب أو عامل تشغيل، أو أسلوب استرجاع قيمة. يتم التحكم في النص الأساسي لهذه الأساليب أو عوامل تشغيل أو accessors بالقيود التالية:

  • غير مسموح بكتل غير آمنة.

  • لا يمكن أن تكون معلمات الأسلوب أو عامل التشغيل أو أسلوب استرجاع قيمة المرجع أو خارج .

  • تعذر تحديد موقع عبارة إرجاع العائد في أي مكان داخل حظر محاولة catch. It can be located في a try حظر if the try حظر هو followed بواسطة a finally حظر.

  • A yield فاصل كشف may be located في a try حظر أو a catch حظر but not a finally حظر.

A yield كشف cannot appear في an anonymous أسلوب. لمزيد من المعلومات، راجع الأساليب المجهولة (دليل البرمجة لـ #C).

When used مع expression, a yield return كشف cannot appear في a catch حظر أو في a try حظر that has واحد أو المزيد catch clauses. لمزيد من المعلومات، راجع استثناء معالجة البيانات ( مرجع C# ).

مثال

في the following مثال, the yield كشف هو used inside an المكرر حظر, which هو the أسلوب Power(int number, int power). When the Power أسلوب هو invoked, it إرجاع an قابل للتعداد كائن that يحتوي على the powers of a رقم. Notice that the return نوع of the Power أسلوب هو System.Collections.IEnumerable, an المكرر واجهة نوع.

public class List
{
    //using System.Collections;
    public static IEnumerable Power(int number, int exponent)
    {
        int counter = 0;
        int result = 1;
        while (counter++ < exponent)
        {
            result = result * number;
            yield return result;
        }
    }

    static void Main()
    {
        // Display powers of 2 up to the exponent 8:
        foreach (int i in Power(2, 8))
        {
            Console.Write("{0} ", i);
        }
    }
}
/*
Output:
2 4 8 16 32 64 128 256 
*/

مواصفات لغة #C

لمزيد من المعلومات، راجع مواصفات لغة #C. مواصفات اللغة هي المصدر النهائي لبناء جملة C# واستخدامها.

راجع أيضًا:

المرجع

foreach في ( مرجع C# )

استخدام تكرارات (البرمجة C# إرشادات)

المبادئ

دليل البرمجة لـ #C

موارد أخرى

مرجع C#‎