है मैं एक IList<Delegate>
कि कुछ Func<bool>
रों होता है और कुछ Predicate<T>
रों मिल गया है, जहां T
भिन्न होता है। बाद में मुझे यह पता लगाने की आवश्यकता है कि इनमें से कौन सा आइटम Predicate<T>
एस है, लेकिन बाद में सूची में अन्य Delegate
प्रकार जोड़ने के लिए दरवाजा बंद नहीं करना चाहते हैं, इसलिए मैं !(current_delegate is Func<bool>)
द्वारा ऑब्जेक्ट्स की पहचान करके ऐसा नहीं करना चाहता हूं।निर्धारित करें यदि वस्तु किसी भी विधेय <T>
Predicate<T>
नीचे उच्चतम अमूर्त MulticastDelegate
, जो बेकार लगता है (Predicate<T>
के तहत एक गैर सामान्य Predicate
प्रकार की आवश्यकता होगी) है, और सामान्य पैरामीटर की उपस्थिति की पहचान दी अन्य सामान्य Delegate
कि में मौजूद हो सकता भी बेकार है सूचि।
एकमात्र अन्य चीज जिसे मैंने माना है Type
के Name
की जांच कर रहा है। मेरे लिए, स्ट्रिंग तुलना एक गंध की गंध है, लेकिन शायद यह सबसे अच्छा और/या एकमात्र तरीका है - आप मुझे बताओ।
सबसे अच्छा तरीका निश्चित निर्धारित करने के लिए है कि एक object
किसी भी Predicate<T>
T
के प्रकार जानने के बिना है क्या है?
पूर्णता। उन चीजों में से एक जो मैं शायद कम से कम साप्ताहिक के लिए एक अच्छा उपयोग खोजने जा रहा हूं। – Jay
हाँ, लेकिन 'अवैधऑपरेशन अपवाद' को पकड़ने के लिए तैयार रहें जो गैर-प्रतिनिधि प्रतिनिधि प्रकारों के लिए फेंक दिया जाएगा - जो लगता है कि वे भविष्य की संभावना हो सकते हैं। परेशानी से बचने के लिए, इस विधि को कॉल करने से पहले 'Type.IsGenericType' देखें। –