تفاوت بین Func ،Predicate و Expression در #C
نویسنده: وحید نصیری
تاریخ: ۱۴۰۳/۱۲/۲۴ ۰۷:۵۳
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
Func، Predicate و Expression می پردازد.Func (فانک):Func<int, string> (تبدیل عدد صحیح به رشته).Func<int, string> func = x => x.ToString(); string result = func(5); // "5"
Predicate (پردیکیت):Func است که یک پارامتر ورودی می گیرد و مقدار بولی (boolean) (درست یا غلط) برمیگرداند.Predicate<int> (بررسی زوج بودن یک عدد صحیح).Predicate<int> isEven = x => x % 2 == 0; bool isFiveEven = isEven(5); // false
Expression (اکسپرشن):Expression<Func<int, bool>> (بررسی بزرگتر بودن یک عدد صحیح از 10).Expression<Func<int, bool>> expr = x => x > 10; // You can compile and run this expression: Func<int, bool> compiledExpr = expr.Compile(); bool isElevenGreaterThanTen = compiledExpr(11); // true
Action<string> (یک رشته را در کنسول چاپ میکند).// Prints "Print action called!" to the console
Action<string> print = message => Console.WriteLine(message);
print("Print action called!");Func (فانک) در مقابل Predicate (پردیکیت): Func (فانک): هر نوع مقداری را برمیگرداند.Predicate (پردیکیت): فقط مقدار بولی (boolean) برمیگرداند.Func/Predicate در مقابل Expression (اکسپرشن):Func/Predicate: نماینده را مستقیماً اجرا میکند.Expression (اکسپرشن): امکان تحلیل و تغییر قبل از اجرا را فراهم می کند.Func (فانک): متدهای عمومی با مقادیر بازگشتی.Predicate (پردیکیت): بررسی شرط و فیلتر کردن.Expression (اکسپرشن): پرس و جوهای پویا، ابزارهای ORM و تبدیل کد.