我有一个简单的程序:

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。

c# - 函数不能使用与返回类型相同的接口(interface)返回类型-LMLPHP

最佳答案

在这种情况下,InA将作为generic argument而不是作为接口名称来处理。您应该以不同的方式声明GetA方法的通用参数,或者将其完全删除。这应该工作:

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

关于c# - 函数不能使用与返回类型相同的接口(interface)返回类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40019562/

10-10 16:01