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 लेते हैं और कुछ करते हैं। लेकिन समता (evenness) जांचने के लिए Predicate का उपयोग क्यों किया जाता है, Func<int, bool> का नहीं? और Action की आवश्यकता ही क्या है, जबकि