C#、SynchronizedReadOnlyCollection 及其构造函数

标签 c# readonly-collection

.net 类 SynchronizedReadOnlyCollection 有 4 个构造函数。

    public SynchronizedReadOnlyCollection();
    public SynchronizedReadOnlyCollection(object syncRoot);
    public SynchronizedReadOnlyCollection(object syncRoot, IEnumerable<T> list);
    public SynchronizedReadOnlyCollection(object syncRoot, params T[] list);

无参构造函数和只有锁对象的构造函数有什么用?创建集合的时候如果不填充集合就会一直为空?我错过了什么吗?

最佳答案

在某些时候,您可能需要一个空集合,例如如果您正在初始化一个类并且在调用构造函数时数据未知。如果您不分配空集合,则其他代码在尝试访问该字段/属性并抛出 NullReferenceException 时可能会失败。如果在稍后阶段提供数据,该代码只需用 SynchronizedReaOnlyCollection 的新填充实例替换该字段。

关于C#、SynchronizedReadOnlyCollection 及其构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3591818/

相关文章:

c# - 值类型和原始类型有什么区别?

c# - List<T> 如何使用 ReadOnly 列表复制构造函数?

.net - 公开 IList<T> 或 ReadOnlyCollection<T> 作为只读属性?

c# - 使用可移植类库 (PCL) 从 URL 下载字符串

c# - 将任何日期格式字符串解析为日期时间

c# - 使用 Dependency Property 传递回调方法

c# - 如何检查文件是否使用 AES 加密 (Rijndael)

c# - 使用 IReadOnlyCollection<T> 而不是 IEnumerable<T> 作为参数以避免可能的多重枚举

c# - 如何展平 IEnumerables 的 IEnumerables 的串联

c# - .NET 4.0 中的只读列表或不可修改列表