声明字符串 public static readonly 与 public const 与 public static const

2024-02-09

在每个项目中,我们都有一个文件用于存储该项目中使用的各种 SQL 语句。类的声明方式和字符串的声明方式有一些变化。

类声明示例:

internal sealed class ClassName
internal static class ClassName
public sealed class ClassName
public static class ClassName
internal class ClassName

字符串声明示例:

internal const string stringName
internal static string stringName
public static readonly string stringName
public static string stringName
public const string stringName

我不明白不同声明之间的性能影响是什么。对于这种情况/场景有最佳实践吗?


我不明白不同声明之间的性能影响是什么

评估数据库查询的成本可能是millions or billions从常量更改为只读字段或反之亦然的成本差异的倍数。当您的数据库操作的延迟以毫秒为单位时,甚至不必担心需要几纳秒的操作的性能。

您应该担心的是语义,而不是性能。问题归结为“只读、常量还是两者都不是?”

获得正确的语义。 “只读”字段意味着“每次执行该程序时,该字段都会更改一次”,从 null 到其值。 “const”字段意味着“这个值永远不会改变,现在不会,下一个版本不会,永远不会,它是始终不变” 普通字段可以随时更改值。

只读字段类似于版本号。它随着时间的推移而改变,但不会随着程序的执行而改变。常数类似于 pi,或铅的原子序数;它是固定的、永恒的、永不改变的。普通字段适用于在程序过程中发生变化的事物,例如黄金价格。您的查询是什么样的?它会在整个程序过程中保持不变,始终保持不变,还是根本不保持不变?

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

声明字符串 public static readonly 与 public const 与 public static const 的相关文章

  • 是否保证 sizeof(T[N]) == N * sizeof(T) ?

    我一直假设 N 个元素类型的数组的大小T 由返回sizeof保证正好是N次sizeof T The 对这个问题的评论 https stackoverflow com questions 46457449 is it always the c
  • 更改图像颜色与透明背景

    我需要使用 c System Drawings 将透明背景上带有绿色圆圈的图像加载到位图图像中 这是最简单的部分 但是 我需要在将其添加到更大的图像之前更改圆圈的颜色 而不影响周围的透明度 就我而言 我需要将圆圈颜色更改为黄色并将其添加为太
  • Monitor.Pulse & Wait - 意外行为

    http www codeproject com Articles 28785 Thread synchronization Wait and Pulse demystified http www codeproject com Artic
  • 提取单花括号内的值

    我想要一个收藏 value 一个字符串使用正则表达式 例如 lorem ipsum field1 lorem ipsum field2 lorem ipsum field1 lorem ipsum field2 field3 我会得到 fi
  • .NET 中的 Class.forName() 等效项?

    动态获取对象类型然后创建它的新实例的 C 方法是什么 例如 如何在 C 中实现以下 Java 代码的结果 MyClass x MyClass Class forName classes MyChildClass newInstance Lo
  • 为什么 fgets 接受 int 而不是 size_t?

    功能如strcpy malloc strlen 和其他各种接受他们的参数或返回值作为size t代替int or an unsigned int出于显而易见的原因 一些文件功能 例如fread and fwrite use size t以及
  • C 链表销毁函数

    我正在尝试学习 C 和很多人一样 我对指针有点困惑 无论如何 我创建了一个递归函数来销毁我的链表 但是正如我调试的那样 当我从函数返回时 列表的头部不应该为空 所以我猜这是对指针的一些基本误解 这是函数 void destroy struc
  • 使用 LINQ 展平嵌套字典

    所以我有一本形式的字典Dictionary
  • 如何生成可变参数包?

    给定不相关的输入是否可以生成非类型参数包 我的意思是 我想改变这一点 template
  • 用 OpenCL C 编写快速线性系统求解器

    我正在编写一个 OpenCL 内核 它将涉及求解线性系统 目前我的内核太慢了 提高线性系统部分的性能似乎是一个不错的起点 我还应该注意 我并没有尝试使我的线性求解器并行 我正在研究的问题在宏观层面上已经是令人尴尬的并行 以下是我编写的 C
  • 将 std::pair const 转换为 std::pair const 安全吗?

    理论上或实践上 安全吗reinterpret cast a std pair
  • Cookie 在 ASP.net 中失去价值

    我有以下设置 cookie 的代码 string locale DropDownList this LoginUser FindControl locale SelectedValue HttpCookie cookie new HttpC
  • 解析连接字符串

    是否有标准库或代码片段可以使用这样的连接字符串获取值 string connstr DataServiceUrl http localhost foo RemoteServerConnection server http localhost
  • 当一对迭代器初始化时,向量是否知道先保留?

    考虑以下代码 struct MyData MyData const BYTE pData size t uSize bucket pData pData uSize std vector
  • C++ 模板参数数量错误(2,应该是 1)

    我使用 C 并行快速排序程序进行了测试 如下所示 首先使用列表作为容器 然后我转移到通用容器类型 但它报告了标题错误 可以帮忙解决这个问题吗 include
  • 如何解决 boost::multi precision::cpp_dec_float 除法错误

    除以boost multiprecision cpp dec float有某种舍入误差 如下 include
  • 调用泛型类的方法

    这是上下文 我尝试编写一个映射器来动态地将域模型对象转换为 ViewModel 对象 我遇到的问题是 当我尝试通过反射调用泛型类的方法时 出现此错误 System InvalidOperationException 无法对 Contains
  • 小数精度

    我使用小数类型进行高精度计算 货币 但我今天遇到了这个简单的划分 1 1 37 这应该再次得到 37 http www wolframalpha com input i 1 2F 281 2F37 29 http www wolframal
  • Selenium - 模式对话框存在 - 如何接受信息?

    我有以下问题 在页面上提交一些日期后 我有一个如图所示的模式对话框 我想单击 ENTER 来浏览该模式 但它不起作用 我有以下代码 driver FindElement By CssSelector input submit Click A
  • 如何使用实体框架设置连接字符串

    我将 EF6 与 MySQL 结合使用 并有一个用于多个数据库的模型 我希望能够在我的表单中设置连接设置 如何以编程方式设置模型的连接字符串 你应该使用EntityConnectionFactory这就是您所需要的 public strin

随机推荐

  • 在 Startup.cs .net core 2.1 中加载程序集

    我在名为 nuqkgs 的文件夹中有块包 在项目启动时我想将这些包 有 dll 加载到项目中以在运行时使用 我使用下面的代码来加载它们 当我调试时 我可以看到信息 并且找到并打开了 dll 但是当应该使用它们时 我收到错误 找不到 dll
  • TEdgeBrowser 模态打印对话框?

    TEdge浏览器有替换了 TWebBrowser https docwiki embarcadero com RADStudio Alexandria en Using TEdgeBrowser Component and Changes
  • 更改默认图标工具栏(传单)

    我如何将默认工具栏图标更改为传单上的其他图标 上面的图片显示了图标的默认视图 我想自定义图标并将其更改为其他图标 例如我希望第一个图标看起来像桥梁和第二个文本图标等等 我已经尝试了几种方法但没有成功 这是我的代码 var electricp
  • 在 lapply 函数中访问和保留列表名称

    我需要访问 lapply 函数内的列表名称 我在网上找到了一些线程 据说我应该迭代列表的名称 以便能够获取函数中的每个列表元素名称 gt n names mylist gt mynewlist lapply n function namei
  • 在另一个视图控制器中更改标签的文本

    我有一个名为 FirstViewController 的视图控制器 还有一个名为 SecondViewController 的视图控制器 我提出第二个视图控制器 UIViewController controller self storyb
  • 在 C 中声明和修改字符串

    我最近开始尝试学习C语言 在我的第一个程序 简单的 hello world 事情 中 在我意识到我不能这样做之后 我遇到了声明字符串的不同方法variable name string data char variable name data
  • Solr 和 MySQL,如何保持更新的索引,以及,如果很简单,是否还需要数据库?

    我是 Solr 的初学者 所以请耐心等待 在我当前的项目中 我有一个非常简单的数据库 只有 1 个表 其中包含 4 个字段 id name subject msg 据我了解 每次添加 或删除 新记录时 我都需要将该记录添加到索引中 本质上执
  • 如何计算具有三角形面的网格的质心?

    我想根据以下描述计算网格的新质心 但我不想使用 Blender 的内置函数来计算质心 如所解释的here https blender stackexchange com questions 14294 how to recenter an
  • 如何保存pip包

    我们有一个基于 python django 的 Web 应用程序 其中许多组件都是使用 pip 安装的 所以我想问是否有一种方法可以保存或下载并保存我们正在 pip install 的特定 python 包 例如 pip install d
  • 将 md5 哈希字节数组转换为字符串

    如何将哈希结果 字节数组 转换为字符串 byte bytePassword Encoding UTF8 GetBytes password using MD5 md5 MD5 Create byte byteHashedPassword m
  • 在Java中像表格一样打印二维数组[重复]

    这个问题在这里已经有答案了 我想像表格一样打印输入的二维数组 也就是说 如果出于某种原因他们全都输入 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 就像上面一样 但在 Java Eclipse 的控制台中 没有花哨的按
  • “404 重定向”是合法的重定向吗?

    我遇到的情况是 某些用户可能会通过链接等进入错误输入的页面 在大多数情况下 我可以确定应显示的正确页面 因此我想重定向到正确的 URL 301 重定向适合这种情况吗 301 的意思是 永久移动 但在这种情况下 该文档一开始就不存在 设置 4
  • 实体框架核心:当 IDENTITY_INSERT 设置为 OFF 时,无法在表“关系”中插入标识列的显式值

    我正在构建一个应用程序 当我想将表单插入表单表时 出现以下错误 无法在表 关系 中插入标识列的显式值 当 IDENTITY INSERT 设置为 OFF 时 这些是我的模型 表格型号 DatabaseGenerated DatabaseGe
  • 如何向 OpenDayLight Karaf 添加新功能?

    如何将新功能添加到 ODL Oxygen SR3 0 8 3 作为 Karaf 模块 例如 我从以下位置下载了预构建的 ODL 官方网站 https nexus opendaylight org content repositories p
  • 是否可以反转具有恒定额外空间的数组?

    假设我有一个数组A with n系列中的独特元素 0 n 换句话说 我有整数 0 n 的排列 是否可以转型A into B使用 O 1 额外空间 又名就地 这样B A i 我 例如 A B 3 1 0 2 4 gt 2 1 3 0 4 是的
  • PhoneGap 是慢还是有 bug?

    在我编译演示应用程序并将其部署到我的 Samsung Galaxy S II 后 我注意到 PhoneGap 附带的示例 PhoneGap 应用程序在按下按钮和滚动时响应不太灵敏 我还使用 PhoneGap 和 jQuery Mobile
  • 开源 ETL 框架 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在第一个空格出现处分割字符串

    我没有得到一个优化的正则表达式 它将我的字符串拆分为第一个空白出现的位置 var str 72 tocirah sneab 我需要得到 72 tocirah sneab 如果您只关心空格字符 而不是制表符或其他空白字符 并且只关心第一个空格
  • 在Using语句中从DataLayer返回DataReader

    我们有很多数据层代码都遵循这个非常通用的模式 public DataTable GetSomeData string filter string sql SELECT FROM SomeTable WHERE SomeColumn Filt
  • 声明字符串 public static readonly 与 public const 与 public static const

    在每个项目中 我们都有一个文件用于存储该项目中使用的各种 SQL 语句 类的声明方式和字符串的声明方式有一些变化 类声明示例 internal sealed class ClassName internal static class Cla