Interface 从接口定义通用列表

Interface 从接口定义通用列表,interface,generic-list,Interface,Generic List,这可能是一个简单的答案,但我正在创建一个简单的接口,它包含一个通用列表的定义。基本上只是说创建一个通用列表,如下所示: public static List<UserControl> ViewList = new List<UserControl>(); 事实证明,这比我想象的要困难。也许我做错了?我尝试的每个定义都会导致预期列表成为属性或方法。例如,我尝试了下面的方法,但没有成功 //FirstTry public interface IAddToViewLi

这可能是一个简单的答案,但我正在创建一个简单的接口,它包含一个通用列表的定义。基本上只是说创建一个通用列表,如下所示:

public static List<UserControl> ViewList = new List<UserControl>();
事实证明,这比我想象的要困难。也许我做错了?我尝试的每个定义都会导致预期列表成为属性或方法。例如,我尝试了下面的方法,但没有成功

//FirstTry
    public interface IAddToViewList
    {
        List<UserControl> ViewList();
    }
//Second
    public interface IAddToViewList
    {
        List<UserControl> ViewList { get; set; }
    }
此外,我不确定是否可以将列表包含为静态列表,我很难找到符合这些要求的问题,可能是因为这不可能,或者我的想法不对?

接口是抽象方法的集合。这意味着您无法向它们添加类变量

在功能上,您需要完成的是一个抽象类

公共抽象类AddToViewList { 列表视图列表; } 但是,您只需定义一个返回列表的方法

公共接口IAddToViewList { 公共列表创建视图列表; } 这将确保实现IAddToViewList的每个类也具有createViewList方法。现在,在本例中,UserControl必须是一个已定义的类,因此这是UserControl对象的列表,而不是通用列表

要使列表通用,您必须在接口名称后添加菱形:

公共接口IAddToViewList { 公共列表创建视图列表; } 然后,当您实现类时,它会是这样的

公共类Foo实现了IAddToViewList { 公共列表createViewList{ //待办事项 返回null; } }
接口没有成员。他们只有方法。接口只是定义实现这个接口的东西应该有什么方法。在我看来,您可能需要一个抽象类而不是接口。