Unity जानने की कोशिश कर, मैं MVC में GetControllerInstance
अधिभावी के लिए निम्न कोड दिखाई दे रहा है जबकि:उपयोग और "है" सी # में कीवर्ड
if(!typeof(IController).IsAssignableFrom(controllerType)) { ... }
इस मुझे लगता है मूल रूप से
लेखन की एक बहुत जटिल तरीकाif(controllerType is IController) { ... }
मैं सराहना वहाँ is
और IsAssignableFrom
, के बीच सूक्ष्म अंतर यानी IsAssignableFrom
डाली रूपांतरण शामिल नहीं करता है, लेकिन मैं इस differenc के निहितार्थ को समझने के लिए संघर्ष कर रहा हूँ व्यावहारिक परिदृश्य में ई।
is
से अधिक चुनने के लिए अपमानजनक कब है? GetControllerExample
में इससे क्या अंतर आएगा?
if (!typeof(IController).IsAssignableFrom(controllerType))
throw new ArgumentException(...);
return _container.Resolve(controllerType) as IController;
आह ठीक है अब अंतर स्पष्ट है। मुझे यह देखना चाहिए था! – fearofawhackplanet
तो मेरा अनुमान है कि यदि 'टी' और' यू 'जेनेरिक प्रकार हैं तो टाइप टाइप (टी) IsAssignableFrom (टाइपोफ (यू)) '' नया टी() यू' जैसा ही है? – orad
नहीं, लेकिन यह 'नया यू() टी' जैसा ही होगा। टी आधार प्रकार होगा। मैं हमेशा उस से छुटकारा पाता हूं। मुझे बस याद है कि 'IsAssignableFrom' 'is' ऑपरेटर के विपरीत चला जाता है। – Jordan