C# 一个类的 List<> 可以/应该是同一个类的静态成员吗​​?

标签 c# list class

我的例子:

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/

相关文章:

c# - 带有 If 语句的 foreach 循环中的字体样式不正确

javascript - URL angular 2 typescript 网络应用程序不允许使用 405 方法

C# List<T> 与 IEnumerable<T> 性能问题

c++ - 如何在 C++ 中声明 std::chrono::duration<double> 变量

java-如何管理多个数据列表-在单个变量中-轻松访问每个列表

ios - 有没有办法动态实例化类类型

c# - .net 和 .config 文件

php - 在 php 中为类自动生成 getter 和 setter 的最佳方法是什么?

C++: "error C4430: missing type specifier - int assumed"对于构造函数和析构函数的无效声明

c# - 域对象命名类的命名实践