मुझे is
और as
instanceof
के लिए पता है, लेकिन प्रतिबिंबित isInstance() विधि के बारे में क्या है?जावा के isInstance() के बराबर सी # क्या है?
उत्तर
सी # में जावा के obj.getClass().isInstance(otherObj)
के बराबर इस प्रकार है:
bool result = obj.GetType().IsAssignableFrom(otherObj.GetType());
ध्यान दें कि जबकि दोनों जावा और सी क्रम प्रकार वस्तु एक obj
(की (जावा java.lang.Class
≣ सी # System.Type
) पर # काम .getClass()
बनाम .getType()
के माध्यम से), जावा का isInstance
ऑब्जेक्ट को इसके तर्क के रूप में लेता है, जबकि सी #अन्य System.Type
ऑब्जेक्ट की अपेक्षा करता है।
सिर्फ मेरे सिर के ऊपर से, आप भी कर सकता है:
bool result = ((obj as MyClass) != null)
सुनिश्चित नहीं हैं कि बेहतर प्रदर्शन करेंगे। मैं बेंचमार्क के किसी और अप करने के लिए इसे छोड़ देंगे :)
bool result = (obj is MyClass); // Better than using 'as'
क्या यह कक्षाओं के लिए भी काम करता है जो विरासत का उपयोग करते हैं? ('नया बच्चा() अभिभावक है) –
हां यह ठीक है, आप यहां परीक्षण किए गए –
से ऊपर कैसे दिखाते हैं, यह उपयोगकर्ता विरासत के वर्गों के लिए काम करता है। धन्यवाद दोस्त। –
निर्भर करता है, is
का उपयोग आप कलाकारों के परिणाम का उपयोग करें और as
उपयोग करें यदि आप नहीं करना चाहते हैं।
if(foo is Bar) {
return (Bar)foo;
}
बजाय:: आप शायद ही कभी लिखना चाहते
var bar = foo as Bar;
if(bar != null) {
return bar;
}
कोड नीचे IsAssignableFrom
लिए विकल्प हो सकता है।
parentObject.GetType().IsInstanceOfType(inheritedObject)
एमएसडीएन में Type.IsInstanceOfType विवरण देखें।
- 1. क्या सी ++ में जावा बराबर विधि के बराबर है?
- 2. सी # जावा के charAt() के बराबर है?
- 3. क्या जावा के पास सी # "उपयोग" खंड के बराबर है
- 4. सी # में जावा के enum के बराबर क्या है?
- 5. जावा बराबर सी # TimeSpan के
- 6. क्या सी # में ग्रोवी के बराबर है?
- 7. जावा isInstance बनाम उदाहरण ऑपरेटर
- 8. क्या जावा में सी ++ विनाशक बराबर है?
- 9. क्या जावा में सी # इंडेक्सर के बराबर है?
- 10. सी # में लिंक्ड हैशसेट (जावा) के बराबर क्या है?
- 11. क्या सी # में 'नया' संशोधक के बराबर जावा है?
- 12. जावा दशमलव दशमलव के बराबर सी # समतुल्य क्या है?
- 13. क्या इस जावा कोड में सी # के बराबर है?
- 14. थ्रेडिंग: क्या सी # जावा रननेबल इंटरफ़ेस के बराबर है?
- 15. सी # जावा के mkdirs के बराबर()
- 16. क्या कोई जावा libevent के बराबर है?
- 17. इस preg_replace के बराबर जावा क्या है?
- 18. सी # जावा के Thread.setDaemon के बराबर?
- 19. 'दोस्तों' जावा के बराबर है?
- 20. ungetc के बराबर जावा
- 21. सी # के जार फ़ाइलों के बराबर है?
- 22. क्या ऐप्पल के कोर डेटा के बराबर जावा है?
- 23. जावा पाइथन के गेटैटर के बराबर है?
- 24. जावा app.config के बराबर है?
- 25. डेल्फी - क्या सी # लॉक के बराबर है?
- 26. सी # - "\ 0" के बराबर क्या है?
- 27. सी ++ में Thread.SetApartmentState के बराबर क्या है?
- 28. क्या IsDebuggerPresent() के बराबर सी # # है?
- 29. क्या सी # के वेक्टर 3 के बराबर मानक सी ++ है?
- 30. सी ++/सीएलआई सी # के डिफ़ॉल्ट (टी) के बराबर क्या है?
नोट IsAssignable एक ऑब्जेक्ट नहीं, एक वस्तु लेता है, इसलिए आपको वास्तव में अन्यObj.getType() करने की आवश्यकता है। – FlySwat
धन्यवाद जॉन - और याद रखें, यह एक विकी है! मैं अपनी गलतियों को सुधारने वाले लोगों को नाराज नहीं करता हूं। –
रोचक ... जावा में, जेवीएम विशेष रूप से बहुत ही तेज़ "उदाहरण" का व्यवहार करता है, जो समझा सकता है कि इसका असामान्य रूप से एक कीवर्ड क्यों है (जावा में भी एक असाइन करने योग्य विधि है)। –