का उत्तराधिकारी नहीं है। मुझे उम्मीद है कि यहां कोई व्यक्ति यह बता सकता है कि मैं क्या गलत धारणाएं बना रहा हूं। सी # 4.0 में, मेरे पास 2 इंटरफेस और एक कक्षा है जो दोनों को लागू करती है। एक विधि में मैं पहली बार इंटरफ़ेस के प्रकार के साथ एक चर घोषित, वर्ग है कि दोनों इंटरफेस को लागू करता है और किसी भी तरह यह निम्न कोड में की तरह दूसरे इंटरफ़ेस करने के लिए सफलतापूर्वक डाल सकता का उपयोग कर इसे का दृष्टांत:एक इंटरफ़ेस को किसी अन्य इंटरफ़ेस में कास्ट करना कि यह
public interface IFirstInterface
{
void Method1();
}
public interface ISecondInterface
{
void Method2();
}
public class InterfaceImplementation : IFirstInterface, ISecondInterface
{
public void Method1() { }
public void Method2() { }
}
public class SomeClass
{
public void SomeMethod()
{
IFirstInterface first = new InterfaceImplementation();
first.Method1();
// Shouldn't the next line return null?
ISecondInterface second = first as ISecondInterface;
// second is not null and the call to Method2() works fine
second.Method2();
}
}
मैं यह समझने की कोशिश कर रहा है कि कास्टिंग सफल क्यों है। हां, कक्षा दोनों इंटरफेस लागू करती है, लेकिन मुझे लगता है कि पहले चर के रूप में IFirstInterface (जो ISecondInterface से प्राप्त नहीं है) के रूप में घोषित किया गया है, कास्टिंग अभी भी विफल होना चाहिए।
मैंने अपने कोड को अन्य तरीकों से पुनर्गठन करने का भी प्रयास किया है, जैसे कि 'as' का उपयोग न करें, लेकिन कलाकार अभी भी सफल है।
मुझे क्या याद आ रही है?
यह पुष्टि करता है कि मैंने क्या सोचा था। धन्यवाद –
बहुत से धन्यवाद, वास्तव में इसकी आवश्यकता है। +1 (+10 अगर मैं कर सकता था)। – Arjang