我有一个简单的程序:
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。
答案 0 :(得分:5)
在这种情况下,InA被处理为generic argument而不是作为接口名称。您应该以不同方式声明GetA方法的泛型参数,或者将其删除。这应该有效:
static InA GetA()
{
return new A();
}