2012-04-22 12 views
7
public <T extends java.util.EventListener> T[] getListeners(final Class<T> listenerClass) { 
    ... 
} 

उपरोक्त जावा जेनरिक के बराबर सी # जेनेरिक नोटेशन क्या है?सी # जेनेरिक और पागल नहीं जा रहे

पैरामीटर श्रोता क्लास एक प्रकार & एक वस्तु नहीं होगा। लेकिन ऑब्जेक्ट टी को एक विशिष्ट पदानुक्रम से संबंधित होना चाहिए।

+0

'कक्षा ' का अर्थ क्या है? – Gabe

+0

तो जावा में: मैं MyListener.class पास करता हूं .. जहां MyListener कक्षा का नाम है .. विधि ऑब्जेक्ट को पैराम्स के रूप में अनुमति नहीं देगी – pulancheck1988

+0

क्या यह पता लगाने में सक्षम होना चाहिए कि 'टी' क्या है? यदि ऐसा है, तो सी # में इसकी आवश्यकता नहीं है क्योंकि विधि के अंदर 'टी' उपलब्ध है। – Gabe

उत्तर

13
public T[] GetListeners<T>() where T : EventListener 
{ 
} 
+0

परम के साथ क्या हुआ ?? मैं उस प्रकार के ऑब्जेक्ट की कक्षा (प्रकार) विधि रिटर्न सरणी पास करता हूं – pulancheck1988

+3

मान लें कि वापसी का प्रकार MyListener प्रकार की एक सरणी है। आप इस तरह की विधि को कॉल करेंगे: MyListener [] mylisteners = GetListeners (); –

+3

@ pulancheck1988: जावा के विपरीत, सी # में सामान्य तर्क को संशोधित और सुलभ किया जाता है। इसलिए जावा में 'टी। क्लास' अवैध है, सी # समकक्ष 'टाइपोफ (टी)' पूरी तरह से वैध है और आपको 'टी' के प्रकार से संबंधित 'टाइप' ऑब्जेक्ट वापस कर देगा। 'क्लास ' ऑब्जेक्ट्स के आसपास गुजरने के जावा मुहावरे जावा के जेनेरिक कार्यान्वयन की सीमा के लिए सिर्फ एक कामकाज है; चूंकि सी # में समान सीमा नहीं है, इसलिए मुहावरे अलग हैं। –

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