मैंने कुछ समय के लिए खोज की है, लेकिन मुझे इस समस्या का उत्तर नहीं मिल रहा है। मुझे यह पता लगाने की ज़रूरत है कि जिस वस्तु को मैं वर्तमान में देख रहा हूं वह सबक्लास है, या वैकल्पिक रूप से यदि यह किसी अन्य वर्ग से विरासत में है। मुझे यह जानने की जरूरत नहीं है कि क्या यह वर्ग किसी दूसरे से विरासत में मिल सकता है, बल्कि केवल यह जानने के लिए कि क्या यह उपवर्ग है। वर्तमान संदर्भ में, मेरे पास यह जानने का कोई तरीका नहीं है कि मूल वर्ग क्या है, इसलिए मैं इसका उपयोग नहीं कर सकता:

  • typeof(Derived).IsSubclassOf(typeof(Base))
  • typeof(Base).IsAssignableFrom(typeof(Derived))
  • मैं is या as का उपयोग नहीं कर सकता

क्या Type कक्षा या PropertyInfo कक्षा में ऐसा कुछ है जहां मैं इसे देख सकता हूं?

-1
Dan Espinosa 13 सितंबर 2019, 21:17

1 उत्तर

सबसे बढ़िया उत्तर

सी # में प्रत्येक वर्ग ऑब्जेक्ट से लिया गया है, इसलिए इसका मतलब यह जांचना है कि दिया गया वर्ग उप-वर्ग है या नहीं, आप बेसक्लास प्रकार की संपत्ति की जांच कर सकते हैं। नीचे दिया गया स्निपेट।

class Base {
}
class Derived : Base
{
}

अब अगर आप चेक करते हैं

var isBase = typeof(Base).BaseType == typeof(Object) // true
isBase =  typeof(Derived).BaseType == typeof(Object) // false
1
Nauty 13 सितंबर 2019, 18:48