readonly 关键字不会使 List<> 成为只读?

2024-02-27

我在公共静态类中有以下代码:

public static class MyList
{
    public static readonly SortedList<int, List<myObj>> CharList;
    // ...etc.
}

..但即使使用readonly我仍然可以将另一个类的项目添加到列表中:

MyList.CharList[100] = new List<myObj>() { new myObj(30, 30) };

or

MyList.CharList.Add(new List<myObj>() { new myObj(30, 30) });

有没有一种方法可以使该内容只读而不更改 CharList 的实现(它会破坏一些东西)? 如果我确实必须更改实现(以使其不可更改),最好的方法是什么? 我需要它是 List,所以 ReadOnlyCollection 不行


修饰符readonly http://msdn.microsoft.com/en-us/library/acdd6hb7.aspx意味着该值不能是assigned除了在声明或构造函数中。确实如此not意味着分配的对象变得不可变。

如果您希望对象不可变,则必须使用不可变的类型。方式ReadOnlyCollection<T> http://msdn.microsoft.com/en-us/library/ms132474.aspx您提到的是不可变集合的一个示例。请参阅此相关问题,了解如何对字典实现相同的效果:

  • .NET 中有可用的只读通用字典吗? https://stackoverflow.com/questions/678379/is-there-a-read-only-generic-dictionary-available-in-net
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

readonly 关键字不会使 List<> 成为只读? 的相关文章

  • ConcurrentHashMap 内部是如何工作的?

    我正在阅读有关 Java 并发性的 Oracle 官方文档 我想知道Collection由返回 public static
  • 添加对共享类的多个 WCF 服务的服务引用

    我正在尝试将我的 WCF Web 服务拆分为几个服务 而不是一个巨大的服务 但是 Visual Studio Silverlight 客户端 复制了两个服务共享的公共类 这是一个简单的例子来说明我的问题 在此示例中 有两个服务 两者都返回类
  • 在 C++ 中分割大文件

    我正在尝试编写一个程序 该程序接受一个大文件 任何类型 并将其分成许多较小的 块 我想我已经有了基本的想法 但由于某种原因我无法创建超过 12 kb 的块大小 我知道谷歌等上有一些解决方案 但我更感兴趣的是了解这个限制的根源是什么 然后实际
  • 获取两个字符串之间的公共部分c# [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要的是获取两个单词之间的共同部分并获取差异 例子 场景1 word1 感言 word2 Test 将返回 公共部分Test 不同之
  • 通信对象 System.ServiceModel.Channels.ServiceChannel 不能用于通信

    通信对象System ServiceModel Channels ServiceChannel 无法用于通信 因为它处于故障状态 这个错误到底是什么意思 我该如何解决它 您收到此错误是因为您让服务器端发生 NET 异常 并且您没有捕获并处理
  • ZLIB 解压缩

    我编写了一个小型应用程序 该应用程序应该解压缩以 gzip deflate 格式编码的数据 为了实现这一点 我使用 ZLIB 库 使用解压缩功能 问题是这个功能不起作用 换句话说 数据不是未压缩的 我在这里发布代码 int decompre
  • VS30063:您无权访问 https://dev.azure.com

    我正在尝试在 asp net core 2 1 mvc 应用程序中使用以下代码连接 Azure DevOps Uri orgUrl new Uri https dev azure com xxxxx String personalAcces
  • 在 C# 中将位从 ulong 复制到 long

    所以看来 NET 性能计数器类型 http msdn microsoft com en us library system diagnostics performancecounter aspx有一个恼人的问题 它暴露了long对于计数器
  • 转到 C# WPF 中的第一页

    我正在 WPF 中使用导航服务 为了导航到页面 我使用 this NavigationService Navigate new MyPage 为了返回我使用 this NavigationService GoBack 但是如何在不使用的情况
  • gdb 在 docker 上立即退出“进程已完成,退出代码 1”或 lldb“数据包返回错误 8”。另外:如何在 docker 中允许进行 C++ 调试

    这花了我一整天的时间才找到 所以我将其发布以供将来参考 我正在 docker 镜像上开发 C 我正在使用克利翁 我的代码是在调试模式下编译的 并且在运行模式下运行良好 但是当尝试调试时 进程会立即退出 并显示非常丰富的信息 Process
  • 单元测试失败,异常代码为 c0000005

    我正在尝试使用本机单元测试项目在 Visual Studios 2012 中创建单元测试 这是我的测试 TEST METHOD CalculationsRoundTests int result Calculations Round 1 0
  • 通过不同 DLL 或 EXE 中的指针或引用访问 STL 对象时发生访问冲突

    我在使用旧版 VC6 时遇到以下问题 我只是无法切换到现代编译器 因为我正在处理遗留代码库 http support microsoft com kb 172396 http support microsoft com kb 172396
  • 用于从字符串安全转换的辅助函数

    回到 VB6 我编写了一些函数 让我在编码时无需关心字符串的 null 和 数字的 null 和 0 等之间的区别 编码时 没有什么比添加特殊情况更能降低我的工作效率了用于处理可能导致一些不相关错误的数据的代码 9999 10000 如果我
  • “MyClass”的类型初始值设定项引发异常

    以下是我的Windows服务代码 当我调试代码时 我收到错误 异常 CSMessageUtility CSDetails 的类型初始值设定项引发异常 using System using System Collections Generic
  • UWP 无法在两个应用程序之间创建本地主机连接

    我正在尝试在两个 UWP 应用程序之间设置 TCP 连接 当服务器和客户端在同一个应用程序中运行时 它可以正常工作 但是 当我将服务器部分移动到一个应用程序并将客户端部分移动到另一个应用程序时 ConnectAsync 会引发异常 服务器未
  • 过期时自动重新填充缓存

    我当前缓存方法调用的结果 缓存代码遵循标准模式 如果存在 则使用缓存中的项目 否则计算结果 在返回之前将其缓存以供将来调用 我想保护客户端代码免受缓存未命中的影响 例如 当项目过期时 我正在考虑生成一个线程来等待缓存对象的生命周期 然后运行
  • 32位PPC rlwinm指令

    我在理解上有点困难rlwinmPPC 汇编指令 旋转左字立即然后与掩码 我正在尝试反转函数的这一部分 rlwinm r3 r3 0 28 28 我已经知道什么了r3 is r3在本例中是一个 4 字节整数 但我不确定这条指令到底是什么rlw
  • 如何在 GCC 5 中处理双 ABI?

    我尝试了解如何克服 GCC 5 中引入的双重 ABI 的问题 但是 我没能做到 这是一个重现错误的非常简单的示例 我使用的GCC版本是5 2 如您所见 我的主要函数 在 main cpp 文件中 非常简单 main cpp include
  • 为什么 Ajax.BeginForm 在 Chrome 中不起作用?

    我正在使用 c NET MVC2 并尝试创建一个 ajax 表单来调用删除数据库记录 RemoveRelation 的方法 删除记录的过程正在按预期进行 删除记录后 表单应调用一个 JavaScript 函数 从视觉效果中删除该记录 Rem
  • boost::program_options:带有固定和可变标记的参数?

    是否可以在 boost program options 中使用此类参数 program p1 123 p2 234 p3 345 p12 678 即 是否可以使用第一个标记指定参数名称 例如 p 后跟一个数字 是动态的吗 我想避免这种情况

随机推荐

  • 如何将参数传递给 p:dataTable 中的 valueChangeListener?

    我正在打电话valueChangeListener on a
  • 根据另一个单元格中的值更改单元格中的值

    搜索了这个但找不到方法 我希望能够将一个单元格中的值转换为不同单元格中的另一个值 如下所示 当列中的单元格A包含Y在列中设置相同数量的单元格B to Male或者当列中的单元格A包含N在列中设置相同数量的单元格B价值Female 例如 A2
  • C相当于fstream的peek

    我知道在 C 中 您可以使用以下命令查看下一个字符 in peek 当尝试 查看 C 中文件的下一个字符时 我该如何解决这个问题 fgetc http opengroup org onlinepubs 007908799 xsh fgetc
  • 使用 Glumpy 将 NumPy 数组显示为持续更新的图像

    我有一个使用 NumPy 和 SciPy 在 Python 中运行的模拟模型 它会生成一个 2D NumPy 数组作为每次迭代的输出 我一直使用 matplotlib 和 imshow 函数将此输出显示为图像 然而 我发现了 Glumpy
  • 将对象列表分组为尽可能少的子列表,但不超过最大总和

    我正在尝试编写一种方法 将对象分组到最少量的子列表中 而无需混合类型 对象上的 int 字段 或其值的总和超过定义的最大值 它应该看起来像这样 List
  • Maven:如何安装 mvnsh?

    我怀疑我的处理方式完全错误 我听说过mvnsh http shell sonatype org 并想尝试一下 以减少构建时的延迟 但我完全不知道如何做到这一点 我仍在学习 Maven 并在两者之间进行错误的比较mvn和类似的工具gem ca
  • 将使用 AWT 和 Swing 绘制电影的 Java 应用程序移植到服务器端

    我正在使用一些代码 使用 AWT 和 Swing 功能将动画输出写入桌面 它使用 2D 图形进行绘制并以字体呈现文本 此代码可以使用 Java Media Framework 将动画保存到电影文件 我想将此代码移植到纯服务器端环境 以便使用
  • 在 Javascript 中从 JSON 数组查找名称值对的有效方法

    我当前正在调用一个服务 该服务将响应作为具有名称值对的对象数组发送 下面是一个例子 这些名称值对的数量可以是任意顺序 但我只想访问名称 name2 的值 除了循环遍历每个对象并检查名称以获得 name2 的相应值之外 还有其他有效的方法吗
  • 按位右展开算法

    本来这篇文章要求逆绵羊和山羊操作 但我意识到这超出了我的实际需要 所以我编辑了标题 因为我只需要一个右展开算法 http programming sirrida de bit perm html c e 这更简单 我在下面描述的示例仍然具有
  • 派生类的受保护成员未知

    我找到了一个图形的开源类库 当我将它包含在我的项目中时 它有很多错误 我试图修复它们 但是有一个编译错误我无法解决 基类 template
  • 如何使用 GreenDao 3 生成内容提供者?

    在GreenDao 2 x 中 有一个方法叫做Entity addContentProvider 它为实体生成了 ContentProvider 如何在 GreenDao 3 x 中做同样的事情 使用相同的方法 Entity addCont
  • 没有 single-int-arg 构造函数/工厂方法

    我有这个代码 final Person p new Person 1L final ObjectMapper mapper JacksonUtil INSTANCE getMapper final TypeReference
  • Android 滑动抽屉在创建时打开

    我想要一个在应用程序启动时打开的滑块 它将通过按钮等打开 当用户关闭它时 将有更多按钮可以访问 滑动抽屉可以做到这一点吗 我要在 onCreate 方法中添加什么 Thanks XML 布局 在基本 LinearLayout 中
  • 由于在形成 SQL 查询时不赞成字符串替换,因此如何动态分配表名?

    sqlite3 还很新 所以请耐心听我说 我想要一个可以传递表名和要更新的值的函数 我最初是从这样的事情开始的 def add to table table name string cursor execute INSERT INTO ta
  • 启动后gunicorn无法启动

    我正在运行 Debian Web 服务器 其中 nginx 和 Gunicorn 运行 django 应用程序 我已经一切正常并运行良好 但重新启动服务器后 我收到 502 bad gateway 错误 我已将问题追溯到gunicorn 在
  • 不对应于实体的 RESTful 操作/服务?

    我喜欢 RESTful 因为它简单 而且它避免了 SOAP 等普通 企业 系统的弊端 或者 DCOM 和 RPC 的二进制难度 但 REST 似乎比更抽象的服务更适合数据库实体 我想知道您是否可以建议我如何处理这些情况 例如 假设我有一个用
  • Teams 中的 QnA Maker Bot 格式问题

    我们使用 QnA Maker 知识库实现了一个简单的 Azure 机器人 并启用了 Teams 通道 在 webChat 中 Markdown 格式渲染得很好 然而 在 Teams 中 Markdown 格式并不总是按预期工作 如果答案中没
  • 区域多边形未显示在 ggplot2 Choropleth 地图中

    我正在尝试使用 ggplot2 绘制非常基本的地图 我不明白为什么彩色多边形不会显示 看来我的代码与我在许多教程和本网站上已经回答的问题中找到的代码没有什么不同 我认为这可能来自我准备数据的方式 参见下面的 100 可重复示例 librar
  • clflush 不刷新指令缓存

    考虑以下代码段 include
  • readonly 关键字不会使 List<> 成为只读?

    我在公共静态类中有以下代码 public static class MyList public static readonly SortedList