How to call a particular explicitly declared interface method in C#

后端 未结 4 897

I have a doubt on how to call the method of particular interface (Say IA or IB or In...) in the following code. Please help me on how to call. I have commented the lines of

4条回答
  •  栀梦
    栀梦 (楼主)
    2021-01-19 04:02

    The method that will be called depends on the type that calls it. For example:

    Note, for sake of clarity, I create two items. In practice though, you don't want to do this, you should just cast the object between types.

    static void Main(string[] args)
    {
        // easy to understand version:
        IA a = new Model();
        IB b = new Model();
    
        a.Display();
        b.Display();
    
        // better practice version:
        Model model = new Model();
    
        (IA)model.Display();
        (IB)model.Display();
    }
    
    interface IA
    {
        void Display();
    }
    
    interface IB
    {
        void Display();
    }
    
    class Model : IA, IB
    {
        void IA.Display()
        {
            Debug.WriteLine("I am from A");
        }
    
        void IB.Display()
        {
            Debug.WriteLine("I am from B");
        }            
    }
    

    Outputs:

    I am from A
    I am from B
    

提交回复
热议问题