IEnumerable آن چیزی نیست که شما فکر می کنید – و این کد شما را می شکند

TLDR: بیایید به تفصیل متداول ترین اشتباه در رابطه با IEnumerable – شمارش مکرر – را بررسی کنیم اما این بار کمی عمیق تر خواهیم شد و بررسی خواهیم کرد که چرا شمارش مکرر یک اشتباه است و چه مشکلات پتانسیل ای ممکن است ایجاد کند ، از جمله دشوار و اشکالات را بازتولید کنید.

IENUMEBLE چیست

اولین چیزها – بیایید بررسی کنیم (با این حال ، دوباره ، همانطور که مقالات زیادی در این مورد وجود دارد) چه Ienumerable ، چه عمومی و چه غیر ژنتیکی ، است. بسیاری از توسعه دهندگان ، همانطور که بسیاری از مصاحبه ها و بررسی های کد نشان می دهند ، ناخواسته نمونه های IEnumerable را به عنوان مجموعه ها مشاهده می کنند ، و این همان جایی است که ما شروع خواهیم کرد.

وقتی به تعریف رابط IEnumerable نگاه می کنیم ، در اینجا همان چیزی است که ما می بینیم:

public interface IEnumerable : IEnumerable {
    IEnumerator GetEnumerator();
}

ما به جزئیات شمارشگران و غیره نمی پردازیم. کافی است یک چیز بسیار مهم را بیان کنیم: ienumerable است نه یک مجموعه اکثر انواع مجموعه Ienumerable را پیاده سازی می کنند ، اما این همه پیاده سازی های IEnumerable را به مجموعه ها تبدیل نمی کند. با کمال تعجب ، این همان چیزی است که بسیاری از توسعه دهندگان هنگام اجرای کد مصرف یا تولید IEnumerable از دست می دهند ، و این همان چیزی است که پتانسیل خوبی برای مشکلات دارد.

بنابراین ، چه iEnumerable است؟ پیاده سازی های مختلفی برای iEnumerable وجود دارد ، اما برای …

Source link