C# 中的 const 函数参数 [重复]

2023-12-22

可能的重复:
C# 的只读(类似“const”)函数参数 https://stackoverflow.com/questions/3826542/read-only-const-like-function-parameters-of-c-sharp
为什么C#中没有const成员方法和const参数? https://stackoverflow.com/questions/4150478/why-there-is-no-const-member-method-in-c-sharp-and-const-parameter

过去使用 C++ 进行编程时,我记得我们可以在方法中创建常量引用/指针参数。

如果我的记忆是正确的,下面的意思是,该方法不能改变引用,并且引用本身是一个常量引用。

C++ 示例

void DisplayData(const string &value) const
{
   std::count << value << endl;
}

C# 中是否有与类中的方法等效的方法?

我问的原因是,我试图通过引用传递对象(为了速度),同时不希望任何人改变它。


更新 16/09/2020

现在似乎有in参数修饰符 https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/in-parameter-modifier表现出这种行为(本质上,ref readonly)。简单搜索一下您何时会使用它会得到以下答案:

为什么要在 C# 中使用“in”参数修饰符? https://stackoverflow.com/questions/52820372/why-would-one-ever-use-the-in-parameter-modifier-in-c

原答案

C# 没有对应的东西,有人问过many https://stackoverflow.com/questions/4150478/why-there-is-no-const-member-method-in-c-sharp-and-const-parameter, many https://stackoverflow.com/questions/8236358/const-objects-in-c-sharp-as-parameter, many https://stackoverflow.com/questions/3826542/read-only-const-like-function-parameters-of-c-sharp, many https://stackoverflow.com/questions/3263001/why-const-parameters-are-not-allowed-in-c-sharp以前有过几次。

如果您不希望任何人更改“引用”,或者您可能指的是对象的内容,请确保该类不会公开任何公共设置器或改变该类的方法。如果您无法更改该类,请让它实现一个仅以只读方式公开公开成员的接口,并改为传递接口引用。

如果您的意思是要阻止该方法更改引用,那么默认情况下,如果您“按引用”传递它,则实际上是按值传递引用。该方法尝试更改引用所指向的内容只会影响本地方法副本,而不影响调用者的副本。这可以通过使用来改变ref引用类型上的关键字,此时该方法can将引用指向一个新的底层对象,并且它will影响呼叫者。

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

C# 中的 const 函数参数 [重复] 的相关文章

随机推荐

  • 在package.json脚本中调用特定的NodeJS函数

    我有一个带有导出功能的 NodeJS 文件 有点像这样 test js exports run function console log You run this function 有没有办法使用自定义命令专门从该文件调用该函数script
  • 更改文本颜色 Manim 社区

    我一直在尝试马尼姆社区 我想知道是否有一种方法可以通过调用将整个程序中的文本颜色更改为黑色config 我可以使用更改背景颜色config background color WHITE 我尝试过在线搜索并尝试随机的事情 例如config t
  • 为什么 /}/ 是 JavaScript 中有效的正则表达式?

    是 JS 中有效的正则表达式 alert replace g 然而 ECMA标准 http es5 github com x15 10 1似乎不允许 PatternCharacter SourceCharacter but not any
  • 输入表单字段的 ActiveAdmin 自定义值

    我在 Rails 4 中有一个 ActiveAdmin 项目 出于某种原因 当我使用 value gt some value对于一个字段来说 没有任何改变 它仅显示为空文本字段 这是我的表格的示例 form do f f inputs Te
  • Objective-C - 如何提高浮点数的精度

    有人可以告诉我如何将浮点数的精度设置为所需的长度吗 假设我有一个号码 2504 6 正如你所看到的 这里的精度只有 1 我想将其设置为 6 我需要这个 因为我将此值与从 txtInput text floatValue 即使我在文本框中输入
  • 如何使用正则表达式在Matlab中解析HTML标签?

    我时间紧迫 特别想提取如下所示的字符串 问题是标签不是以下形式 a data a Given s em style font size 6 5 888 em 如何在matlab中提取出5 888 你会发现有用的信息here https st
  • Unicode小写字符?

    我在某个地方读到 有字符other比 Unicode 中具有小写等效项的 A Z 更重要 这些可能是什么 为什么其他字符需要大写和小写 英语 甚至是那种奇怪的变体 美式英语 并不是地球上唯一的语言 有一些very看起来很奇怪 至少对于那些熟
  • 在隐藏的 HTML 输入字段中使用方括号

    我正在分析别人的 PHP 代码 我注意到输入 HTML 有许多隐藏的输入字段 其名称以 结尾 例如
  • 下面的表达式在 python 中如何工作? [复制]

    这个问题在这里已经有答案了 下面的表达式在 python 中如何工作 gt gt gt 1 1 2 gt gt gt 1 1 0 我认为这会引起SyntaxError但事实并非如此 您必须使用括号逻辑和算术运算来进行这种计算 1 2 变为
  • Rails Upsert PG created_at 问题

    抱歉 如果之前已经回答过这个问题 但我找不到明确的答案 肯定有人在使用的时候遇到过这个问题upsert您需要指定每一列 包括created at and updated at 怎么才能不更新created at更新插入发生时的时间戳 我只想
  • 检查 google reCaptcha 服务是否打开或关闭

    我正在使用简单的谷歌验证码 我的要求是 如果谷歌API不可用 即如果谷歌服务器关闭 知道它不常见的情况 意味着没有从谷歌服务器得到任何回复 那么在加载表单时我将隐藏谷歌reCaptcha包装器并在提交表单时我不想验证谷歌验证码 请建议我怎样
  • 在Python中仅检索网页的标题

    我有 5000 多个网页 我想要所有这些网页的标题 在我的项目中 我使用这样的 BeautifulSoup html 解析器 soup BeautifulSoup open url read soup title 0 string 但它需要
  • 不同 JBoss 版本上的 EJB2

    我需要使用部署在 JBoss 版本 4 x 上的一些 EJB 以及部署在 JBoss 版本 3 2 x 上的另一个 EJB 这可能吗 我问这个问题是因为我有一个第三方应用程序 它使用一些奇怪的桥来做到这一点 但不知道为什么 尽管我没有尝试自
  • 多重性和 EF 6 的问题

    这件事不知从何而来 我以前从未遇到过这个问题 我刚刚完成向 SQL Azure 数据库添加一个表 该表将为注册我们的电子邮件列表的人员保存电子邮件 该表没有任何关联 它只是单独的 我返回 VS 并从数据库更新我的模型 现在收到这些错误 Er
  • Objective c - 通过 http POST 发送图像

    我试图了解如何使用 http POST 和我当前的客户端 服务器协议设计发送图像 从客户端到服务器的所有消息如下例所示 有一个带有参数的cmd字符串cmd以及该命令的一些更相关的参数 例如 这是我向服务器发送短信的方式 void sendM
  • YouTube Android API:YouTubePlayerFragment 加载微调器

    我正在使用 Android YouTube API 示例在我的应用程序中创建一个 chromeless YouTube 播放器 我遇到的问题是 即使视频已加载并开始播放 缓冲 加载进度条仍会继续显示在视频上 我可以在FragmentDemo
  • 400 找不到项目的计费帐户。必须启用计费才能激活服务

    我通过 firebase 创建 API这个教程在这里 https itnext io building a serverless restful api with cloud functions firestore and express
  • 如何通过在Spring data jpa中连接来自不同数据库的2个表来运行本机查询?

    我正在使用 Spring boot 1 5 18 RELEASE 我使用以下方法跟踪了多个数据源link https www baeldung com spring data jpa multiple databases 但当我在同一服务器
  • 使用 Spring Android RestTemplate 发送 Gzip 压缩数据?

    目前的Spring Android 文档 http docs spring io spring android docs current reference htmlsingle d4e52第 2 2 2 节中说 RestTemplate
  • C# 中的 const 函数参数 [重复]

    这个问题在这里已经有答案了 可能的重复 C 的只读 类似 const 函数参数 https stackoverflow com questions 3826542 read only const like function paramete