Predicate Delegate در زبان #C
در بخش قبلی با Action delegate ها در زبان #C آشنا شدید، در این بخش، Predicate Delegate در زبان برنامه نویسی سی شارپ توضیح داده می شود. Predicate یک delegate است مانند delegate های Func و Action . Predicate متدی را نشان می دهد که شامل مجموعه ای از معیارها است و بررسی می کند که آیا پارامتر فرستاده شده با آن معیارها مطابقت دارد یا خیر. متدهای predicate delegate باید یک پارامتر ورودی را بگیرند و یک مقدار از نوع بولین - درست یا نادرست (true or false)- برگردانند.
Predicate delegate در فضای نام System تعریف می شود، همانطور که در زیر نشان داده شده است:
Predicate signature: public delegate bool Predicate<in T>(T obj);
همانند سایر انواع delegate ، Predicate را می توان با هر متد، متد anonymous یا lambda expression استفاده کرد.
خروجی کد بالا در ادامه نشان داده شده است.
یک متد anonymous نیز می تواند به یک نوع Predicate delegate اختصاص داده شود. همانطور که در زیر نشان داده شده است.
خروجی کد بالا در ادامه نشان داده شده است.
همانطور که در زیر نشان داده شده است، می توان یک عبارت lambda را به یک نوع Predicate delegate اختصاص داد.
خروجی کد بالا در ادامه نشان داده شده است.
نکاتی که باید به خاطر بسپارید:
1- Predicate delegate یک پارامتر ورودی می گیرد و نوع بازگشتی boolean دارد.
2- predicate delegate باید شامل معیارهایی برای بررسی اینکه آیا پارامتر عرضه شده مطابق با این معیار است یا خیر باشد.
2- Anonymous method و Lambda expression را می توان به predicate delegate اختصاص داد.