c# - GC 会删除非静态类中的静态属性吗?

标签 c#

我有一个用于单元测试的模拟数据库类

在每个单元测试中,我创建了一个 MockDB 对象,并且从之前运行的测试中添加的用户已经存在,但是由于该类未标记为 static,静态 List 对象将持续多长时间?

public class MockDB
{
    public static List<User> users = new List<User>();

    public void Add(User user)
    {
        users.Add(user);
    }

    public void Remove(User user)
    {
        users.Remove(user);
    }

    public User Get(int userId)
    {
        return users.Where(u => u.UserId == userId);
    }
}

最佳答案

永远无法收集,因为代码可以随时访问它。

类是否为static 没有区别。

关于c# - GC 会删除非静态类中的静态属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47781058/

相关文章:

c# - expression blend SDK v4.5 在哪里下载

c# - 如何用C#绘制表格?

c# - Newtonsoft 忽略属性?

c# - 如何验证Azure负载均衡器?

c# - 异常处理中的异常处理

c# - Web 应用程序无法启动 : iisexpress. exe 已退出,代码为 0

c# - (C#) 访问/修改列表中的对象

c# - 除非 Silverlight 项目托管在同一个项目中,否则对 Web 服务的调用将失败

c# - 从多个模型解析相同的表名

c# - 使用 C#7 的 foreach 声明中的空合并运算符