با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، با یکی دیگر از جلسات دوره کامل آموزش #C در خدمت شما دوستان هستیم . در بخش قبلی با Action delegate ها در زبان #C آشنا شدید ، در این بخش قصد داریم شما را با Predicate Delegate در #C آشنا کنیم. تا پایان این جلسه همراه ما باشید.
یک Predicate Delegate نیز مانند Func delegate و Action delegate است. Predicate Delegate میتواند شامل متدی باشد که مجموعه ای از معیارها و بررسی اینکه آیا پارامتر منتقل شده مطابق با این معیارها است یا خیر ، می شود. متد باید یک پارامتر ورودی داشته باشد و یک مقدار بولین(درست یا غلط) را بازگرداند.
Predicate Delegate در فضای نام System در زیر نشان داده شده است
ساختار کلی :
public delegate bool Predicate<in T>(T obj);
همانند سایر انواع Delegate ها، Predicate Delegate نیز می تواند با هر anonymous method ، method یا lambda expression مورد استفاده قرار گیرد.
1 2 3 4 5 6 7 8 9 10 11 12 13 | static bool IsUpperCase(string str) { return str.Equals(str.ToUpper()); } static void Main(string[] args) { Predicate<string> isUpper = IsUpperCase; bool result = isUpper("hello world!!"); Console.WriteLine(result); } |
خروجی :
1 | false |
یک anonymous method نیز می تواند به Predicate delegate اعمال شود که در زیر نشان داده شده است.
1 2 3 4 5 | static void Main(string[] args) { Predicate<string> isUpper = delegate(string s) { return s.Equals(s.ToUpper());}; bool result = isUpper("hello world!!"); } |
یک عبارت lambda نیز می تواند به Predicate delegate اعمال شود که در زیر نشان داده شده است.
1 2 3 4 5 | static void Main(string[] args) { Predicate<string> isUpper = s => s.Equals(s.ToUpper()); bool result = isUpper("hello world!!"); } |
در این بخش با predicate delegate در زبان #C آشنا شدید ، در بخش بعدی قصد داریم شما را با متد های توسعه یافته (Extension Method) در این زبان آشنا کنیم.