如何在 C# 中修改装箱值而不创建新对象?

2024-03-05

如何在 C# 中修改装箱值而不创建新对象?

例如。如果我有object o = 5;我想改变盒装的值5 to 6, 我怎样才能做到这一点?

The o = 6;将在堆上创建一个新对象并将对该对象的引用分配给o。还有其他方法可以更改盒装值吗?


你可以自己“拳击”,而不是修改它。

class Box
{
     public int Value { get;set;}
}

这会阻止自动装箱。

如果您自己定义一个转换运算符

     public static Box operator(int value) => new Box() { Value = value }

您可以保留与上面相同的语法。但如您所见,此语法将创建一个新对象。要修改对象,您必须

  Box b = 5;
  object o = b;
  ((Box)o).Value = 6;
 // or
  b.Value = 6;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 C# 中修改装箱值而不创建新对象? 的相关文章

随机推荐

  • “没有实例”错误

    以下是一个例子http en wikibooks org wiki Haskell Beginning http en wikibooks org wiki Haskell Beginning Prelude gt let abs x if
  • jquery datepicker年份范围默认值

    JQuery 有一点问题datePicker 我怀疑这只是我忽略或错误的设置问题 如果你看这个简单的小提琴 JSFiddle http jsfiddle net w9fwL 2 您会看到我已经设置了年份范围 因此默认情况下 当您单击输入时
  • 使用 python 脚本在同一选项卡中打开 HTML 文件

    我正在尝试使用 python 脚本打开 HTML 页面 使用以下脚本 文件将在新的浏览器选项卡中打开 我应该如何使其在同一选项卡中打开 import webbrowser import os import urllib chrome pat
  • 有没有办法向管理员用户显示 Django 调试堆栈跟踪页面,即使设置中 DEBUG=False 也是如此?

    场景 我宁愿非技术同事直接通过电子邮件向我发送错误 而不是通过 SSH 进入盒子来检索堆栈跟踪 Django 有没有办法或钩子来做这样的事情 例如 def 500 error happened request psuedocode gt l
  • 如何使用 pd.Grouper 按月对日期进行分组?

    我搜索了 stackoverflow 以了解如何按月对 DateTime 进行分组 由于某种原因 即使在我传递数据帧之后 我仍然收到此错误pd to datetime 类型错误 仅对 DatetimeIndex TimedeltaIndex
  • Django 会话过期?

    从 django 的文档中 我的印象是调用 request session set expiry 300 从一种观点来看 会导致会话在五分钟后过期不活动 但是 这不是我在 django trunk 中遇到的行为 如果我从一个视图调用此方法
  • 如何配置 ckeditor 不将内容换行到

    块中?

    我在用ckeditor http ckeditor com 在我的网站上 让用户更容易输入 HTML 但是 我从 ckeditor 返回的数据包含在 p p 块 这是我不想要的 是否有一些配置设置强制编辑器不将文本换行 将以下内容添加到您的
  • GridLayout(不是GridView)如何均匀拉伸所有子项

    我想要一个 2x2 的网格 里面有一个按钮 这只是 ICS 所以我尝试使用给出的新 GridLayout 这是我的布局的 XML
  • 从 RxJS Observable 中过滤未定义的内容

    是否有特定的习惯用法或实用程序用于过滤undefined从 RxJS 可观察到的 这段代码具有我想要的行为 obs pipe filter x gt x undefined 一些替代方案是 obs pipe filter x gt x fo
  • 脚本的布尔参数

    在 Python 中 我了解如何将 int 和 str 参数添加到脚本中 parser argparse ArgumentParser description Mydescription parser add argument l type
  • Elasticsearch - 每个文档的匹配数

    我使用此查询来搜索字段中出现的短语 query match phrase content my test phrase 我需要计算每个文档的每个短语发生了多少次匹配 如果这可能的话 我考虑过聚合器 但认为它们不满足要求 因为它们会给我整个索
  • 如何在 Nextjs 中切换类并更改 CSS?

    我正在开发一个 Next js 项目 其中菜单打开时显示 p 切换菜单类 我设法做到了这一点 但是当我在 CSS 中添加该类时 它没有考虑这两个类 这是我的代码 成分 import useState from react import st
  • 将不完整的嵌套列表放入矩形 ndarray 中

    在Python 也使用numpy 中 我有一个列表列表的列表 每个列表的长度不同 header1 header2 item1 value1 header1 header2 header3 item2 value2 item3 value3
  • Haskell:最简单的 wai 示例的问题

    我是 Haskell 新手 我正在尝试让 wai 包正常工作 因为我对使用 Haskell 进行 Web 应用程序感兴趣 我尝试从第一个 最简单的例子开始wai http github com snoyberg wai主页 1 LANGUA
  • SQL Server 字符串执行带有输出参数的过程

    如何将输出参数与 String Exec 一起使用 考虑使用 标准 语法进行以下查询 DECLARE testString nvarchar 50 EXEC testProcedure param1 testString OUTPUT SE
  • MSVSP100D.dll 缺少在窗口 8 中与 opencv 2.4.1 配合使用 [已关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有以下场景 我正在尝试在 Wind
  • 使用 Cargo 时如何获得带有调试信息的发布版本?

    以下命令 cargo build 产生一个未优化 build with调试信息 相反 cargo build release 产生一个优化 build without调试信息 有没有一种方法可以产生优化 build with调试信息 我需要
  • Heroku 上的 Radiant 扩展?

    有人有过将 Radiant CMS 扩展实际应用到 Heroku 实例上的经验吗 我尝试删除子模块并将文件添加回来 但运气不太好 Heroku 目前不支持 git 子模块 然而 他们的 优秀的 文档表达了解决这个问题的方法 在这里查看 ht
  • 删除 .svn/pristine 的内容是否安全?

    我正在使用一个大型应用程序 我从我的存储库中签出了该应用程序的大部分内容 svn pristine文件夹 据我了解 原始文件夹包含我的workingCopy目录中的文件副本 话虽如此 删除这些文件可以吗 我真的需要它们吗 我已经备份了文件
  • 如何在 C# 中修改装箱值而不创建新对象?

    如何在 C 中修改装箱值而不创建新对象 例如 如果我有object o 5 我想改变盒装的值5 to 6 我怎样才能做到这一点 The o 6 将在堆上创建一个新对象并将对该对象的引用分配给o 还有其他方法可以更改盒装值吗 你可以自己 拳击