रीड की अच्छा जवाब देने के लिए इस तरह से जोड़ने के लिए, इसके बारे में सोचो करने के लिए:
Func<int, int> GetFunc()
{
Func<int, int> f = GetFunc(someParameter);
आप कहना चाहिए
return f;
या कारण "मैं यहाँ एक समारोह लौटने होना चाहिए हूँ, तो चलो चलो एक लैम्ब्डा बनाएं जो मेरे पास मजेदार है ":
return (int i) => f(i);
मुझे उम्मीद है कि आप पूर्व करेंगे; आपके पास पहले से Func<int, int>
है, इसलिए बस इसे वापस करें। एक func मत करो जो एक func कहते हैं।
IEnumerable<int> GetSequence()
{
IEnumerable<int> sequence = GetSequence(someParameter);
आप कह सकते हैं कि यदि आप था
return sequence;
या
foreach(int item in sequence) yield return item;
? दोबारा, मुझे उम्मीद है कि आप पूर्व करेंगे। आपके पास एक अनुक्रम है, तो एक नया अनुक्रम बनाने की सभी परेशानी क्यों करें जो पुराने को बताती है?
वही कार्यों के लिए जाता है; जैसे आप एक प्रतिनिधि बना सकते हैं जो एक और प्रतिनिधि को लपेटता है और एक अनुक्रम जो दूसरे अनुक्रम को लपेटता है, आप एक ऐसा कार्य कर सकते हैं जो किसी अन्य कार्य को लपेटता है, लेकिन आप क्यों? यह सिर्फ संसाधनों का अपशिष्ट है।
स्रोत
2013-03-16 15:35:24
यदि मैं विधि को एसिंक के रूप में चिह्नित करता हूं, और लौटने से पहले प्रतीक्षा करता हूं, तो वापसी से ठीक पहले मैं कुछ शॉर्टरकिट कोड लिख सकता हूं जैसे "अगर (कुछ कंडिशन) झूठी वापसी" .. async कीवर्ड के बिना यह संभव नहीं है क्योंकि यह शिकायत करता है रिटर्न टाइप मिस्चैच ... आप इस मामले में क्या सलाह देंगे? कार्य का प्रयोग करें। FromResult ?? या इस मामले में एसिंक को लपेटने का इंतजार है? – labroo
@labroo मैं शायद इस मामले में "कार्य। FromResult" का उपयोग करेंगे। – hazzik