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

标签 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 的实例? A 实现接口(interface) InA。

enter image description here

最佳答案

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

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

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

相关文章:

.net - Assert.Equals两个实现IEquatable(T)的对象不使用equals方法

.net - 如何转义消息中的换行符?

java - 创建模拟库

c# - WPF MVVM ComboBox 标记选择

c# - 在 ASP.NET MVC3 中共享对象应用程序范围

c# - Windows 窗体 Web 浏览器控制缩放级别

c# - 如何跳过类中接口(interface)的实现

c# - 如何创建确定性指南

c# - 将数字转换为时间?

java - Java 8 接口(interface)中静态方法的用途是什么?