函数不能返回与返回类型相同的接口类型

时间:2016-10-13 11:20:20

标签: c# .net interface

我有一个简单的程序:

class Program
    {
        static void Main(string[] args)
        {
            InA testing = GetA();
        }

        static InA GetA<InA>()
        {
            return new A();
        }
    }

    public interface InA
    {
        void test();
    }

    public class A : InA
    {
        public void test()
        {
            throw new NotImplementedException();
        }
    }

为什么无法从GetA()返回A的实例?实现接口InA。

enter image description here

1 个答案:

答案 0 :(得分:5)

在这种情况下,InA被处理为generic argument而不是作为接口名称。您应该以不同方式声明GetA方法的泛型参数,或者将其删除。这应该有效:

static InA GetA()
{
    return new A();
}