Search code examples
c#interface

interface as return type


Can interface be a return type of a function. If yes then whats the advantage. e.g. is the following code correct where array of interface is being returned.

public interface Interface
{
    int Type { get; }
    string Name { get; }
}

public override Interface[] ShowValue(int a)
{
.
.

}

Solution

  • Yes, you can return an interface.

    Let's say classes A and B each implement interface Ic:

    public interface Ic
    {
        int Type { get; }
        string Name { get; }
    }
    
    public class A : Ic
    {
         .
         .
         .
    }
    
    public class B : Ic
         .
         .
         .
    }
    
    public Ic func(bool flag)
    {
         if (flag)
             return new A();
           return new B();
    
    }
    

    In this example func is like factory method — it can return different objects!