说我有以下内容。
namespace BurgerMachine
{
public class BaseList{
private static readonly List<Bases> bList = new List<Bases>() //might need to take off readonly
{
new Bases(){ BaseID=1, BaseName="Bun"},
new Bases(){ BaseID=2, BaseName="SeededBun"}
};
public static List<Bases> GetList()
{
return bList;
}
}
public class Bases
{
public int BaseID { get; set; }
public string BaseName { get; set; }
}
}
现在,我想从另一个类访问上述列表的元素,这是我当前的设置可行吗?还是我需要返回更多?
我看到了一些人创建列表,然后从另一类添加到的示例,但没有尝试访问已经存在的元素。如果确实存在这样的示例,请指出我的方向正确。
第一次以这种方式使用列表,所以我不确定自己在做什么。任何帮助都会很棒。如果需要更多信息,请询问。
以下几乎没有返回列表的最佳实现。
带有静态类
public class BaseListProvider
{
public static readonly Bases Bun = new Bases() { BaseID = 1, BaseName = "Bun" };
public static readonly Bases SeededBun = new Bases() { BaseID = 2, BaseName = "SeededBun" };
public static IEnumerable<Bases> GetList()
{
return new[]
{
Bun,
SeededBun
};
}
}
public class Bases
{
public int BaseID { get; set; }
public string BaseName { get; set; }
}
具有接口,如果您使用依赖项注入
,这可能会有所帮助public class BaseListProvider : IBaseListProvider
{
public static readonly Bases Bun = new Bases() { BaseID = 1, BaseName = "Bun" };
public static readonly Bases SeededBun = new Bases() { BaseID = 2, BaseName = "SeededBun" };
public IEnumerable<Bases> GetList()
{
return new[]
{
Bun,
SeededBun
};
}
}
public interface IBaseListProvider
{
IEnumerable<Bases> GetList();
}
public class Bases
{
public int BaseID { get; set; }
public string BaseName { get; set; }
}
好吧,您可以将列表作为public
成员如下,然后在您想要的任何地方访问
public List<Bases> bList = new List<Bases>()
{
new Bases(){ BaseID=1, BaseName="Bun"},
new Bases(){ BaseID=2, BaseName="SeededBun"}
};
您现在可以访问
var blist = new BaseList().bList;
使用您的当前设置(如已经评论),为什么不能调用静态方法BaseList.GetList()