Avatar ·

C# में Func, Action और Predicate के बीच क्या अंतर है? कब क्या उपयोग करें?

नमस्ते साथियों! मैंने हाल ही में C# सीखना शुरू किया है और बिल्ट-इन delegates: Func, Action और Predicate पर ध्यान दिया है। ये सभी कुछ सामान्य delegates लगते हैं, लेकिन मैं भ्रमित हूँ कि कब किसका उपयोग करना चाहिए।

\n\n

मैं समझता हूँ कि ये सभी methods को parameters के रूप में पास करने की अनुमति देते हैं, लेकिन इनके signatures अलग-अलग हैं। उदाहरण के लिए, मैंने ऐसा कोड देखा है:

\n\n
Func<int, int, int> add = (x, y) => x + y;\nAction<string> print = s => Console.WriteLine(s);\nPredicate<int> isEven = x => x % 2 == 0;
\n\n

ऐसा लगता है कि तीनों arguments लेते हैं और कुछ करते हैं। लेकिन समता जांचने के लिए Predicate का उपयोग क्यों किया जाता है, Func<int, bool> का नहीं? और Action की आवश्यकता ही क्या है, अगर हम सब कुछ Func से कर सकते हैं?