静态、常量和只读字段的内存分配在哪里?

2023-11-23

我已经在程序中使用了这三个字段,并得到了用法上的差异,但我有点困惑这些字段存储在哪里?是在数据段(堆栈还是堆?)还是代码段?

static int a;
const int b=1235;
readonly int c;

在ILDASM中字段描述如下

对于静态:.field private static int32 a

对于常量: .field 私有静态文字 int32 b = int32(0x000004D3)

对于只读:.field private initonly int32 c


如您所知,const 是静态的,这意味着它存储在堆中。 Readonly 就像会员一样。就像任何其他成员一样,只读的值也存储在堆上。 有关 const 和 readonly 的任何进一步参考,请参阅下面的链接。https://blogs.msdn.microsoft.com/csharpfaq/2004/12/03/what-is-the-difference- Between-const-and-static-readonly/

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

静态、常量和只读字段的内存分配在哪里? 的相关文章

  • CLR 2.0 与 4.0 性能比较?

    如果在 CLR 4 0 下运行 为 CLR 2 0 编译的 NET 程序会运行得更快吗 应用程序配置
  • 如何在多线程C++ 17程序中交换两个指针?

    我有两个指针 pA 和 pB 它们指向两个大的哈希映射对象 当pB指向的哈希图完全更新后 我想交换pB和pA 在C 17中 如何快速且线程安全地交换它们 原子 我是 c 17 的新手 2个指针的原子无等待交换可以通过以下方式实现 inclu
  • 以编程方式读取 SQL Server 查询计划建议的 SQL 特定执行的索引?

    如果我在 SSMS 中运行此命令 set showplan xml on GO exec some procedure arg1 arg2 arg3 GO set showplan xml off GO 我获得查询执行中涉及的完整调用堆栈的
  • 为什么pow函数比简单运算慢?

    从我的一个朋友那里 我听说 pow 函数比简单地将底数乘以它的指数的等价函数要慢 例如 据他介绍 include
  • C++ 是否可以在 MacOS 上与 OpenMP 和 boost 兼容?

    我现在已经尝试了很多事情并得出了一些结论 也许 我监督了一些事情 但似乎我无法完成我想要的事情 问题是 是否有可能使用 OpenMP 和 boost 在 MacOS High Sierra 上编译 C 一些发现 如果我错了请纠正我 Open
  • 如何在C(Linux)中的while循环中准确地睡眠?

    在 C 代码 Linux 操作系统 中 我需要在 while 循环内准确地休眠 比如说 10000 微秒 1000 次 我尝试过usleep nanosleep select pselect和其他一些方法 但没有成功 一旦大约 50 次 它
  • 查找进程的完整路径

    我已经编写了 C 控制台应用程序 当我启动应用程序时 不使用cmd 我可以看到它列在任务管理器的进程列表中 现在我需要编写另一个应用程序 在其中我需要查找以前的应用程序是否正在运行 我知道应用程序名称和路径 所以我已将管理对象搜索器查询写入
  • 如何填充 ToolStripComboBox?

    我发现它很难将数据绑定到ToolStripComboBox 好像没有这个ValueMember and DisplayMember特性 怎么绑定呢 访问toolstripcombobox中包装的组合框并访问其ValueMember Disp
  • 如何使用 Castle Windsor 将对象注入到 WCF IErrorHandler 实现中?

    我正在使用 WCF 开发一组服务 该应用程序正在使用 Castle Windsor 进行依赖注入 我添加了一个IErrorHandler通过属性添加到服务的实现 到目前为止一切正常 这IErrorHandler对象 一个名为FaultHan
  • 为什么在 WebApi 上下文中在 using 块中使用 HttpClient 是错误的?

    那么 问题是为什么在 using 块中使用 HttpClient 是错误的 但在 WebApi 上下文中呢 我一直在读这篇文章不要阻止异步代码 https blog stephencleary com 2012 07 dont block
  • 从同一个类中的另一个构造函数调用构造函数

    我有一个带有两个构造函数的类 C 这是代码片段 public class FooBar public FooBar string s constructor 1 some functionality public FooBar int i
  • C# 存档中的文件列表

    我正在创建一个 FileFinder 类 您可以在其中进行如下搜索 var fileFinder new FileFinder new string C MyFolder1 C MyFolder2 new string
  • 在mysql连接字符串中添加应用程序名称/程序名称[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在寻找一种解决方案 在连接字符串中添加应用程序名称或程序名称 以便它在 MySQL Workbench 中的 客户端连接 下可见 SQL
  • 打印大型 WPF 用户控件

    我有一个巨大的数据 我想使用 WPF 打印 我发现WPF提供了一个PrintDialog PrintVisual用于打印派生的任何 WPF 控件的方法Visual class PrintVisual只会打印一页 因此我需要缩放控件以适合页面
  • C++ new * char 不为空

    我有一个问题 我在 ASIO 中开发服务器 数据包采用尖头字符 当我创建新字符时 例如char buffer new char 128 我必须手动将其清理为空 By for int i 0 i lt 128 i buffer i 0x00
  • 使用 C 在 OS X 中获取其他进程的 argv

    我想获得其他进程的argv 例如ps 我使用的是在 Intel 或 PowerPC 上运行的 Mac OS X 10 4 11 首先 我阅读了 ps 和 man kvm 的代码 然后编写了一些 C 代码 include
  • 为boost python编译的.so找不到模块

    我正在尝试将 C 代码包装到 python 中 只需一个类即可导出两个函数 我编译为map so 当我尝试时import map得到像噪音一样的错误 Traceback most recent call last File
  • Objective-C / C 给出枚举默认值

    我在某处读到过关于给枚举默认值的内容 如下所示 typedef enum MarketNavigationTypeNone 0 MarketNavigationTypeHeirachy 1 MarketNavigationTypeMarke
  • 灵气序列解析问题

    我在使用 Spirit Qi 2 4 编写解析器时遇到一些问题 我有一系列键值对以以下格式解析
  • 如何将十六进制字符串转换为无符号长整型?

    我有以下十六进制值 CString str str T FFF000 如何将其转换为unsigned long 您可以使用strtol作用于常规 C 字符串的函数 它使用指定的基数将字符串转换为 long long l strtol str

随机推荐

  • 文本对齐兼容性

    在表格标题中 默认文本对齐方式为th标签位于中心 考虑以下代码
  • AES 256 加密:公钥和私钥我如何生成和使用它.net [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 关于 AES 256 加密 什么是公钥和私钥 我怎样才能生成这两个密钥 如何使用公开来加密数据 如何使用私有来解密数据 在 Net 中 您可以像这样创建密钥对 public st
  • 在 Perl 中应用编码标准有什么好的自动化框架吗?

    我所知道的一个是Perl 评论家 到目前为止 我的多次尝试都没有结果 这里有人有什么建议吗 任何根据我们的编码标准配置 Perl Critic 并在代码库上运行它的资源将不胜感激 在设置个人资料方面 您尝试过吗perlcritic prof
  • 使用另一个 2D 数组索引 NumPy 2D 数组

    我有类似的东西 m array 1 2 4 5 7 8 6 2 and select array 0 1 0 0 我的目标是 result array 1 5 7 6 I tried ix正如我读到的简化行和列提取 numpy 但这并没有得
  • JavaScript 中有 URL 类吗?

    在 JavaScript 中 是否有任何等效的类 iOS SDK 中的 NSURL 类或 Java 中的 URL 类 通过这样的课程 我想 规范化 URL 从方案 主机 路径组件等组成 URL 以及 将 URL 分解为其元素 詹姆斯 帕多尔
  • 如何循环遍历 TextReader 中的行?

    如何循环遍历 a 中的行文本阅读器 source I tried foreach var line in source 但出现错误 foreach 语句无法对 System IO TextReader 类型的变量进行操作 因为 System
  • 使用 R 将类“tbl_df”、“tbl”和“data.frame”转换为数据帧

    我得到这个数据 gt str gaDataExt Classes tbl df tbl and data frame 2 obs of 5 variables date POSIXct format 2016 05 24 2016 05 3
  • Android 中的光标是否从 0 或 1 引用列?

    我正在使用 SQLite 数据库 并且成功返回游标 但我想知道游标引用的是像数组一样以 0 开头的列还是仅引用 1 开头的列 Android 中 SQLite 数据库中的游标引用从 0 开始的列
  • 根据类的当前实现,通过直接枚举 ConcurrentDictionary 将 ConcurrentDictionary 复制到普通 Dictionary 是否安全?

    TL DR 是否可以单独枚举一个ConcurrentDictionary 发出相同的密钥两次 是否目前的实施 of the ConcurrentDictionary类 NET 5 允许这种可能性吗 我有一个ConcurrentDiction
  • 如何在Python Requests库中实现重试机制?

    我想为Python添加重试机制Requests库 因此使用它的脚本将重试非致命错误 目前我确实认为三种错误是可以恢复的 HTTP 返回代码 502 503 504 找不到主机 现在不太重要 请求超时 在第一阶段 我确实想每分钟重试指定的 5
  • Avro Schema 激发 StructType

    这实际上与我的相同上一个问题 但使用 Avro 而不是 JSON 作为数据格式 我正在使用 Spark 数据框 它可以从几个不同的架构版本之一加载数据 Version One namespace com example avro type
  • 安装没有 package.json 文件的 Cordova 插件

    我正在尝试使用 Cordova CLI 7 安装 Cordova 插件 该插件没有 package json 文件 因此将其添加到我的项目时会抛出错误 我尝试使用plugman 转换config xml 文件 它在 Android 上运行良
  • Okhttp 检查文件大小而不下载文件

    okhttp常见的例子涵盖了get和post的场景 但我需要获取带有 url 的文件的文件大小 因为我需要通知用户 并且只有在获得他们的批准后才能下载文件 目前我正在使用这段代码 URL url new URL http server co
  • Netty Channel.write 不写入消息

    我正在尝试使用 Netty 迈出第一步 为此我在 Netty 上编写了简单的服务器 在 oio plain TCP 上编写了简单的客户端 客户端发送随机文本数据包 并且必须收到 Ack 消息 查看处理程序方法 Override public
  • 在调用 save() 之前必须手动分配此类的 ids

    我的休眠有一些问题 OneToMany映射 就像这里一样 Entity Table name albums SequenceGenerator name ALBUMS SEQ sequenceName albums seq allocati
  • 将 Python 内置类型替换为自定义类型

    是否可以用自定义类型替换一些内置的 python 类型 我想创建类似的东西 class MyInt object builtin int MyInt x 5 您似乎在问是否可以覆盖输入时创建的类型literals 答案是不 你不能做到这样x
  • Android 应用程序仅为一项活动启用 NFC

    对于支持 NFC 的应用程序 是否可以仅针对 Android 中的一项活动启用 NFC 我读过这个 仅从特定活动中读取 NFC 标签 但设备仍在扫描应用程序所有活动的标签 EDIT
  • 将指标从 telegraf 发送到 prometheus

    我在跑prometheus and telegraf在同一主机上 我正在使用一些输入插件 输入 cpu 输入 ntpq 我已经配置为prometheus client输出插件将数据发送到prometheus 这是我的配置 outputs p
  • 带有按名称调用参数的函数文字

    如何在 scala 中定义带有按名称调用参数的匿名函数 我尝试了以下方法 val fun x Boolean y gt Int gt if x y else 0 这适用于按值调用 y 但不适用于按名称调用 为什么 这是可以做到的 但方式略有
  • 静态、常量和只读字段的内存分配在哪里?

    我已经在程序中使用了这三个字段 并得到了用法上的差异 但我有点困惑这些字段存储在哪里 是在数据段 堆栈还是堆 还是代码段 static int a const int b 1235 readonly int c 在ILDASM中字段描述如下