这可能是一个简单的答案,但我正在创建我认为是包含通用列表定义的简单接口。基本上只是说“创建一个通用列表”,如下所示:
public static List<UserControl> ViewList = new List<UserControl>();
这比我预期的要困难得多。也许我错了?我尝试的每个定义都会导致预期列表成为属性或方法。例如,我已经尝试了以下没有运气
//FirstTry
public interface IAddToViewList
{
List<UserControl> ViewList();
}
//Second
public interface IAddToViewList
{
List<UserControl> ViewList { get; set; }
}
另外我不确定是否可以包含列表应该是静态的,我找不到符合这些要求的问题的人,也许是因为它不可能或者我认为它是错误的方式是什么?
答案 0 :(得分:1)
接口是抽象方法的集合。这意味着您无法向其添加类变量。
你需要在功能上完成这一点是一个抽象类。
public abstract class AddToViewList
{
List<UserControl> ViewList;
}
但是,您需要做的就是定义一个返回列表的方法
public interface IAddToViewList
{
public List<UserControl> createViewList();
}
这将确保实现IAddToViewList的每个类都具有createViewList()方法。现在,在这种情况下,UserControl必须是一个已定义的类,因此这是UserControl对象的列表,而不是&#34;通用列表&#34;。
要使列表通用,您必须在界面名称后添加菱形:
public interface IAddToViewList<UserControl>
{
public List<UserControl> createViewList();
}
然后当你实现你的课时,它看起来像这样
public class Foo implements IAddToViewList<String>
{
public List<String> createViewList(){
// TODO
return null;
}
}