我的例子:
class MyClass
{
public int a = 1;
public static List<MyClass> list = new List<MyClass>();
}
class Program
{
static void Main(string[] args)
{
MyClass.list.Add(new MyClass() { a = 5 });
MyClass.list.Add(new MyClass() { a = 10 });
foreach (MyClass item in MyClass.list) Console.WriteLine(item.a);
Console.ReadKey();
}
此代码有效,并表明我的列表(在 MyClass 类本身中静态定义)正在按照我的预期进行填充。
有什么理由不以这种方式定义我的列表吗?
最佳答案
有时会使用这样的解决方案,例如。实现单例或注册解析模式。
但是你应该记住它不太适合多线程环境。通常,静态集合应该是私有(private)的,访问方法(包括属性 getter 和 setter)应该是同步的。
此外,静态字段/属性很难进行单元测试。
关于C# 一个类的 List<> 可以/应该是同一个类的静态成员吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28547935/