对方法返回值使用 C# 丢弃运算符是否有意义?

2023-11-22

Visual Studio 2019 的代码分析和代码建议开始突出显示我调用返回值但根本不使用该值的方法的每一行代码,并告诉我使用丢弃运算符_.

我不完全理解为什么这很重要,甚至对于 Fluent API 风格的代码来说它似乎是错误的。

以下两行之间有功能差异吗?

private int SomeMethod() => 0;
...
SomeMethod();
_ = SomeMethod();
...

如果返回值是一个引用会更重要吗?如果没有,有没有办法全局禁用此检查?


摘自微软文档:

从 C# 7.0 开始,C# 支持丢弃,这是临时的、虚拟的 在应用程序代码中有意使用的变量。丢弃 相当于未赋值的变量;它们没有价值。 因为只有一个丢弃变量,并且该变量可能 甚至不是分配的存储,丢弃可以减少内存分配。 因为它们使代码的意图变得清晰,所以它们增强了代码的意图 可读性和可维护性。

所有代码分析都是为了帮助改进整体编码。有时,我们会在项目早期编写返回简单值的快速方法。在重构期间,我们出于某种原因停止使用此类变量。代码分析只是指出了这一点。作为开发人员,您可以说,嘿,让我重构该方法以不返回变量,因为我们不需要它。这完全取决于您团队的开发风格。

验证您的问题,我正在运行 VS2019 16.0.0 Preview 5.0,问题就在那里。

根据 @MartinUllrich 的评论,我升级到版本 16.1.0 Preview 2.0。警告已经消失。您还可以禁用警告使用#pragma指令

Sample with pragma directive

You also disable the warning at the top of the source file: enter image description here

你也抑制整个项目的警告.

suppress for project

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

对方法返回值使用 C# 丢弃运算符是否有意义? 的相关文章

  • 如何在C++中实现模板类协变?

    是否可以以这样一种方式实现类模板 如果模板参数相关 一个对象可以转换为另一个对象 这是一个展示这个想法的例子 当然它不会编译 struct Base struct Derived Base template
  • fgets() 和 Ctrl+D,三次才能结束?

    I don t understand why I need press Ctrl D for three times to send the EOF In addition if I press Enter then it only too
  • 如何在我的应用程序中使用 Windows Key

    Like Windows Key E Opens a new Explorer Window And Windows Key R Displays the Run command 如何在应用程序的 KeyDown 事件中使用 Windows
  • 为什么禁止在 constexpr 函数中使用 goto?

    C 14 对你能做什么和不能做什么有规则constexpr功能 其中一些 没有asm 没有静态变量 看起来相当合理 但标准也不允许goto in constexpr功能 即使它允许其他控制流机制 这种区别背后的原因是什么 我以为我们已经过去
  • 写入和读取文本文件 - C# Windows 通用平台应用程序 Windows 10

    有用 但在显示任何内容之前 您必须在文本框中输入内容 我想那是因为我使用了 TextChanged 事件处理程序 如果我希望它在没有用户交互的情况下显示文本文件的内容 我应该使用哪个事件处理程序 因此 我想在按下按钮时将一些数据写入 C W
  • c 中的错误:声明隐藏了全局范围内的变量

    当我尝试编译以下代码时 我收到此错误消息 错误 声明隐藏了全局范围内的变量 无效迭代器 节点 根 我不明白我到底在哪里隐藏或隐藏了之前声明的全局变量 我怎样才能解决这个问题 typedef node typedef struct node
  • 基于范围的 for 循环中的未命名循环变量?

    有没有什么方法可以不在基于范围的 for 循环中 使用 循环变量 同时也避免编译器发出有关未使用它的警告 对于上下文 我正在尝试执行以下操作 我启用了 将警告视为错误 并且我不想进行像通过在某处毫无意义地提及变量来强制 使用 变量这样的黑客
  • Windows 窗体不会在调试模式下显示

    我最近升级到 VS 2012 我有一组在 VS 2010 中编码的 UI 测试 我试图在 VS 2012 中启动它们 我有一个 Windows 窗体 在开始时显示使用 AssemblyInitialize 属性运行测试 我使用此表单允许用户
  • 如何在 Team Foundation 上强制发表有意义的签入评论?

    我有一个开发团队有一个坏习惯 他们写道poor签入评论 当我们必须在团队基础上查看文件的历史记录时 这使得它成为一场噩梦 我已经启用了变更集评论政策 这样他们甚至可以在签到时留下评论 否则他们不会 我们就团队的工作质量进行了一些讨论 他们很
  • 是否有比 lex/flex 更好(更现代)的工具来生成 C++ 分词器?

    我最近将源文件解析添加到现有工具中 该工具从复杂的命令行参数生成输出文件 命令行参数变得如此复杂 以至于我们开始允许它们作为一个文件提供 该文件被解析为一个非常大的命令行 但语法仍然很尴尬 因此我添加了使用更合理的语法解析源文件的功能 我使
  • Windows 10 中 Qt 桌面应用程序的缩放不当

    我正在为 Windows 10 编写一个简单的 Qt Widgets Gui 应用程序 我使用的是 Qt 5 6 0 beta 版本 我遇到的问题是它根本无法缩放到我的 Surfacebook 的屏幕上 这有点难以判断 因为 SO 缩放了图
  • .NET 选项将视频文件流式传输为网络摄像头图像

    我有兴趣开发一个应用程序 它允许我从 xml 构建视频列表 包含视频标题 持续时间等 并将该列表作为我的网络摄像头流播放 这意味着 如果我要访问 ustream tv 或在实时通讯软件上激活我的网络摄像头 我的视频播放列表将注册为我的活动网
  • 网络参考共享类

    我用 Java 编写了一些 SOAP Web 服务 在 JBoss 5 1 上运行 其中两个共享一个类 AddressTO Web 服务在我的 ApplycationServer 上正确部署 一切都很顺利 直到我尝试在我的 C 客户端中使用
  • 将 System.Windows.Forms.Keys 序列转换为 Char

    有没有办法转换由 Keys 枚举表示的击键序列 即System Windows Forms Keys 在一个字符中 例如 Keys Oem4进而Keys A产生 char 它一定存在于 WinAPI 中的某个地方 因为当我在文本框中按下按键
  • 将应用程序从 Microsoft Access 迁移到 VB 或 C#.NET

    我目前正试图说服管理层需要将我们的应用程序之一移植到 NET 该应用程序已经发展成为 Access 中的一个庞然大物 SQL 后端 拥有 700 个链接表 650 个表单 子表单 130 个模块和 850 个查询 我几乎知道这样做的所有主要
  • 已过时 - OpenCV 的错误模式

    我正在使用 OpenCV 1 进行一些图像处理 并且对 cvSetErrMode 函数 它是 CxCore 的一部分 感到困惑 OpenCV 具有三种错误模式 叶 调用错误处理程序后 程序终止 Parent 程序没有终止 但错误处理程序被调
  • GDK3/GTK3窗口更新的精确定时

    我有一个使用 GTK 用 C 语言编写的应用程序 尽管该语言对于这个问题可能并不重要 这个应用程序有全屏gtk window与单个gtk drawing area 对于绘图区域 我已经通过注册了一个刻度回调gtk widget add ti
  • 窗体最大化时自动缩放子控件

    有没有办法在最大化屏幕或更改分辨率时使 Windows 窗体上的所有内容自动缩放 我发现手动缩放它是正确的 但是当切换分辨率时我每次都必须更改它 this AutoScaleDimensions new System Drawing Siz
  • 如何在 C# 中播放在线资源中的 .mp3 文件?

    我的问题与此非常相似question https stackoverflow com questions 7556672 mp3 play from stream on c sharp 我有音乐网址 网址如http site com aud
  • 将变量分配给另一个变量,并将一个变量的更改反映到另一个变量中

    是否可以将一个变量分配给另一个变量 并且当您更改第二个变量时 更改会瀑布式下降到第一个变量 像这样 int a 0 int b a b 1 现在 b 和 a 都 1 我问这个问题的原因是因为我有 4 个要跟踪的对象 并且我使用名为 curr

随机推荐

  • 通过ADB Android发送AT命令

    我的工作任务是调查是否可以通过 ADB shell 向 Android 设备发送 AT 命令 到目前为止 我已尝试回显 AT 命令 但它会将它们作为普通字符串传递 任何帮助请任何人 请尝试这个 echo e AT CFUN r n gt d
  • JSF 2.0 部分状态保存似乎不起作用

    我正在评估在高流量网站中使用 JSF 的可能性 有人告诉我 在 JSF 2 0 中 组件树不存储在会话中 并且一旦组件树被修改 只存储增量 这是我正在查看的页面
  • jQuery 追加 DOM

    jQuery append 的所有示例似乎都采用 html 字符串并将其附加到容器中 我的用例略有不同 我的服务器返回一个 XML 其中包含要显示的 HTML 文本 例如
  • 无加速结果的高斯消去法

    我正在开发一个 C 库 对于我自己来说 代码 https github com BattlestarSC matrixLibrary git 来处理矩阵函数 这主要是一项学习 实践活动 我的挑战之一是有效地获取矩阵的行列式 由于我目前的尝试
  • CodeIgniter 框架上有类似 MasterPages 的东西吗?

    我是 Code Igniter 的新手 我想知道是否有任何东西可以像 NET 上的 MasterPages 一样工作 我还想知道我应该在哪里保存我的公共文件 例如脚本 样式和图像 问候 并预先感谢您 主视图未内置到框架中 要获得类似的效果
  • SSL证书是否绑定到服务器IP地址?

    我们在两个不同的物理办公地点有两个不同的 LDAP 提供商 当我将笔记本电脑连接到一个位置并 从端口检索 在 Websphere 6 1 中 以导入 ldap 提供者的 SSL 证书时 我可以毫无问题地对相应的 ldap 进行身份验证 如果
  • 此 COUNT MySQL 语句中出现未知列错误?

    错误是 where 子句中的未知列 num SELECT COUNT AS num books bookid FROM bookgenre has books WHERE num gt 10 GROUP BY books bookid 我究
  • 如何从 Google Places API 获取国家/地区代码

    我正在尝试使用 HTML 5 GeoLocation 来获取经度和纬度 然后使用 Google Maps API获取国家 地区代码该经度 纬度 有没有更简单的方法从 google place api 获取国家 地区代码 我从这个链接找到了解
  • Ruby 中的正则表达式负向后查找似乎不起作用

    制作一个参数解析器 我想将一个字符串分割成一个数组 其中分隔符是 除非前面有 这意味着字符串 foo ba r arg 应该导致 foo ba r arg 我正在尝试使用这个正则表达式
  • 如何使用用户凭据在 Powershell 中运行 Start-Process?

    我有一个 Windows 服务 Jenkins 它运行一个需要以特定用户身份运行命令的脚本 我尝试这样做 但它不起作用 secpasswd ConvertTo SecureString myPassword AsPlainText Forc
  • Admob 广告未展示 - Android

    我的广告根本不显示 我认为我已正确遵循文档 但它们仍然不会显示 该程序基本上是一个网络视图 我希望广告显示在底部 这是我的布局文件
  • 即使在“keep class”标志之后,ProGuard 也会混淆类。影响 Android WebView 行为

    我正在使用 ProGuard 来混淆我的 Android 应用程序 我也在用WebView显示一个网页 HTML 演练页面 其中包含一个可关闭该按钮的按钮WebView Javascript中有一个函数可以回调closeWalkthroug
  • 在appdata文件夹中创建sql server压缩文件

    我正在开发一个简单的软件 它首先使用实体 框架代码和sql server Compact 4 目前此设置有效 如果 sql server 压缩文件尚不存在 实体框架将创建该文件 数据库的路径是从存储在 app config 文件内的连接字符
  • Google OAuth 登录卡在加载同意屏幕上

    我的应用程序使用 Google Drive API 来备份用户文件 我想从头开始测试我的应用程序登录 因此我从我的 Google 帐户设置中手动撤销了该应用程序 但当我再次登录时 我在选择我的 Google 帐户后卡住了加载同意屏幕 见下文
  • 算法:将列表从一种顺序重新排列为另一种顺序的最佳方法?

    EDIT 我不确定我原来的问题是否足够清楚 我需要一种算法来计算将数组从一个顺序重新排列为另一个顺序的最小移动序列 众所周知 两个数组将包含相同的元素 没有重复 并且具有相同的长度 例如 reorder d a c b e a b c d
  • AWS Elasticbeanstalk 使用 .platform 覆盖 Nginx 配置不起作用

    我正在将 Laravel 应用程序部署到 AWS ElasticBeanstalk 我已经部署了 现在 我尝试使用 platform 文件夹覆盖 etc nginx conf d elasticbeanstalk php conf 文件 我
  • C 中克罗内克乘积的高效计算

    我对 C 相当陌生 对于我的大部分研究来说 不需要比 python 更快的东西 然而 事实证明我最近所做的工作需要计算相当大的向量 矩阵 因此 C MPI 解决方案可能是合适的 从数学上来说 任务非常简单 我有很多维数约为 40k 的向量并
  • python的帧缓冲模块

    我正在寻找一个可以显示的python模块jpg or png文件至 dev fb0直接地 我希望模块可以像这样调用并在屏幕上显示图片 show photo path to jpg x y dev dev fb0 我在google上搜索了这种
  • 使用 html 按钮更改网站语言

    在 PHP 中 我想在单击按钮时更改网站的语言 英语 德语等 这是解决该问题的正确方法吗 a href index php img src images language languageNO png a a href index php
  • 对方法返回值使用 C# 丢弃运算符是否有意义?

    Visual Studio 2019 的代码分析和代码建议开始突出显示我调用返回值但根本不使用该值的方法的每一行代码 并告诉我使用丢弃运算符 我不完全理解为什么这很重要 甚至对于 Fluent API 风格的代码来说它似乎是错误的 以下两行