2013-10-17 5 views
6

जैसा ही है, मैं सोच रहा था कि फ़ंक्शन के लिए सी # में पैरामीटर में निर्दिष्ट प्रकार के मान को वापस करने के लिए संभव है।सी # - एक फ़ंक्शन का रिटर्न प्रकार पैरामीटर

यहाँ मैं क्या करना चाहते हैं:

public ReturnValueUndefined function(undefinedType value) 
{ 
    return value; 
} 

मैं इस का उपयोग करने क्योंकि मैं अपने समारोह पैरामीटर के रूप में किसी भी वर्ग लेने के लिए और एक ही कक्षा वापस जाने के लिए चाहते हैं।

धन्यवाद!

+0

संभावित डुप्लिकेट [मैं सामान्य विधि का रिटर्न प्रकार कैसे बना सकता हूं?] (Http://stackoverflow.com/questions/9808035/how-do-i-make-the-return-type-of-a -method-generic) –

उत्तर

18

आप एक सामान्य कार्य चाहते हैं।

public T YourFunctionName<T>(T value) 
{ 
    return value; 
} 

ध्यान रखें कि संकलक केवल मान सकते हैं कि टी एक वस्तु माना कि पैरामीटर है ताकि आप केवल आप सामान्य पद्धति के लिए एक where बाधा जोड़ सकते हैं बराबर होती है, ToString, आदि जैसी बुनियादी आपरेशन प्रदर्शन कर सकते हैं एक वर्ग या संरचना की तरह कुछ ठोस है।

public T YourFunctionName<T>(T value) where T : class 
{ 
    return value; 
} 

हालांकि एक अच्छा मौका है कि आप वास्तव में केवल कई प्रकार के इलाज के लिए बेस क्लास या इंटरफ़ेस का उपयोग करना चाहते हैं। एक सामान्य विधि का उपयोग करते समय आप जल्दी से महसूस करेंगे यदि आप ऐसा नहीं कर सकते जो आप उस पैटर्न के साथ करना चाहते हैं। यदि आपकी बाधा आपको उस बिंदु पर लाती है जहां आपको केवल अपनी विशिष्ट विधि को केवल एक विशिष्ट इंटरफ़ेस प्रकार पर काम करने के लिए बाध्य करना चाहिए, तो संभवतया आप विधि को इंटरफ़ेस का हिस्सा बनना चाहते हैं।

+2

या एक इंटरफ़ेस :) http://msdn.microsoft.com/en-us/library/bb384067.aspx – pollirrata

संबंधित मुद्दे