C# 自增运算符错误:操作数语法不正确?

2024-02-09

我正在看the docs https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/increment-operator并尝试了解操作员的实际工作原理。

增量运算符 (++) 将其操作数增加 1。增量运算符可以出现在其操作数之前或之后:++variable and variable++.

第一种形式是前缀递增操作。运算结果是操作数递增后的值。

第二种形式是后缀增量运算。运算的结果是操作数递增之前的值。

我希望以下操作能够返回3,但它不会编译,并且声明运算符必须是变量、属性或索引器:

int x = 0;
Console.WriteLine(x++ ++ ++);
/*Expected output: 3*/

为什么这是错误的?我应该假设x++不会为下一个返回相同类型的值++操作员?


来自C# 6 语言规范草案 https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/expressions#postfix-increment-and-decrement-operators:

后缀递增或递减运算的操作数必须是分类为变量、属性访问或索引器访问的表达式。运算结果是与操作数类型相同的值。

x是一个变量,但是x++不是“变量、属性访问或索引器访问”。

现在,让我们想象一个这样的后缀增量运算符调用是合法的世界。给定一个int x = 42;, x++增量x为 43,但计算结果为 42。如果x++ ++是合法的,它将适用于x++,这不是你想要的(它会增加临时值,而不是x)

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

C# 自增运算符错误:操作数语法不正确? 的相关文章

  • 简单的C问题

    作为我正在进行的项目的一部分 我必须开始学习 C 我已经开始解决其中的 欧拉 问题 并且遇到了麻烦 我必须找到 1000 以下的所有 3 或 5 的倍数之和 有人可以帮助我吗 谢谢 include
  • 从 Dropbox C# 下载文件[重复]

    这个问题在这里已经有答案了 我正在尝试下载 Dropbox 中的 pdf 文件 我需要将其保存到本地计算机中 可以是任何文件夹C Users User Desktop例如 这是我一直在使用的代码 public void DownloadPd
  • 在列表中查找匹配项的最简洁方法

    在列表中查找内容的最佳方式是什么 我知道 LINQ 有一些不错的技巧 但我们也可以获取有关 C 2 0 的建议 让我们对这个常见的代码模式进行最佳重构 目前我使用这样的代码 mObjList is a List
  • 将列表数组中的值绑定到列表框

    任何机构都可以给出一个简短的示例 用于将列表数组中的值绑定到 c net 中的列表框 这取决于您的列表数组的情况 让我们从一个简单的示例开始 List
  • 沿着长数据序列在固定大小的移动窗口中查找中值

    给定一个数据序列 可能有重复项 一个固定大小的移动 窗口 从数据开始处每次迭代时移动窗口 序列 使得 1 从窗口中删除最旧的数据元素并添加新数据 元素被推入窗口 2 求每次移动时窗口内数据的中位数 以下帖子没有帮助 有效地找到随机序列的中值
  • 是否可以通过引用以基类作为参数的函数来传递派生类

    假设我们有一个抽象基类IBase使用纯虚方法 接口 然后我们推导出CFoo CFoo2来自基类 我们有一个知道如何使用 IBase 的函数 Foo IBase input 这些情况下通常的场景是这样的 IBase ptr static ca
  • 为什么不能使用initializer_list来初始化unique_ptr的向量? [复制]

    这个问题在这里已经有答案了 我想知道为什么initializer list 不能与unique ptr 一起使用 std vector
  • ASP.NET 数据集 getdataBy 无法启用约束。一行或多行包含违反非空、唯一或外键约束的值

    你好 我有一个非常简单的网络表单 我在此表单上有一个按钮和一个网格视图 以及一个包含链接表 bill docket docket bill 等的数据集 在按钮上单击我使用以下代码 protected void button click ob
  • 通过 EUSART PIC18F45K80 打印消息

    我正在尝试向 Docklight 发送串行消息 但始终收到空值 我正在使用带有 XC8 MPLAB X 的 PIC18F45K80 我的代码中的所有内容似乎都是正确的 但我想我错了 我该如何修复它 include
  • 是否可以获取指向装箱非托管值类型的指针?

    是否可以获取指向装箱非托管值类型的指针 而无需编写对每个支持的类型进行强制转换的大型 switch 语句 就像是 object val Contains a boxed unmanaged value such as int long by
  • memccpy 返回比 src 起始地址更低的内存地址

    我有一个学校项目 我必须重新编码memccpy 功能 我使用 2 个程序来检查我的代码是否正常工作 第一个是只有一个主程序的小程序 第二个程序是另一个学生开发的 可以找到here https github com yyang42 mouli
  • 为什么Windsor只能拦截虚方法或接口方法?

    我正在阅读文档 发现如果不使用接口 那么 Windsor 只能拦截虚拟方法 这是 Windsor 的限制还是 C 语言的限制 我正在寻找深入的答案 C 语言在这里完全无关 问题是拦截在运行时级别如何工作 一种技术是从类继承 实现接口并将其用
  • 为什么我在这段代码中不断得到两个相同的随机值? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么我的随机数生成器在 C 中不是随机的 https stackoverflow com questions 932520 why does it appear that my random num
  • C++ 虚拟关键字与重写函数

    我正在学习c 并且正在学习virtual关键字 我在互联网上搜索试图理解它但无济于事 我进入编辑器并做了以下实验 期望它打印两次基本消息 因为我的印象是需要 virtual 关键字来覆盖函数 然而 它打印出了两条不同的消息 有人可以向我解释
  • 在 OpenGL 中使用不同的着色器程序?

    我必须在 OpenGL 中针对不同的对象使用两个不同的着色器程序 我发现我必须使用glUseProgram 在不同的着色器程序之间切换 但对此没有太多信息 鉴于我有两个用于不同对象的不同着色器程序 如何为每个着色器程序生成和绑定 VAO 和
  • 如何在Phone类库项目中添加ResourceDictionary并访问它

    我正在开发一个项目 其中我有一个引用图书馆项目的子项目 在我的库项目 电话类库 中 如何创建 ResourceDictionary xaml 其中我需要添加一些样式并在 xaml 文件和 cs 文件中使用它 我需要访问 xaml 文件中的
  • 验证域用户凭据

    我需要一种方法来验证 Windows 上本机 C 的用户 密码对 输入的是用户名和密码 用户可以是 DOMAIN user 格式 基本上我需要编写一个函数 如果用户 密码是有效的本地帐户 则返回 true 第1部分 如果用户 密码在给定的域
  • std::iota 的 iota 代表什么?

    我假设 i 是增量 a 是分配 但我无法弄清楚或找到答案 而且 它看起来与非标准非常相似itoa我认为这很令人困惑 C iota is not an acronym or an initialism It is the word iota
  • 频繁插入已排序的集合

    我已经对集合 列表 进行了排序 并且我需要始终保持其排序 我目前在我的集合上使用 List BinarySearch 然后在正确的位置插入元素 我也尝试过在每次插入后对列表进行排序 但性能不可接受 有没有一种解决方案可以提供更好的性能 也许
  • 清理 TPL 中的 CallContext

    根据我使用的是基于 async await 的代码还是基于 TPL 的代码 我在逻辑清理方面得到了两种不同的行为CallContext 我可以设置和清除逻辑CallContext如果我使用以下异步 等待代码 正如我所期望的 class Pr

随机推荐

  • Angular 2 中异步可观察对象和管道上的安全导航运算符

    在异步加载的可观察对象上使用安全导航运算符时 我遇到了将空值 而不是讲座数组 传递到管道的问题 div class list group item 讲座类型 pipe ts import Pipe PipeTransform from an
  • 如何让 JSON 不那么冗长?

    我目前正在开发一个 Web 应用程序并使用 JSON 进行 ajax 请求和响应 我有一个区域 以包含超过 10000 个对象的数组的形式向客户端返回非常大的数据集 这是示例的一部分 已稍微简化 schedules codePractice
  • 用于在 OWA Outlook 中打开对话的 URL 结构

    我正在尝试链接到 Outlook Web 应用程序中的特定对话 因此 我们的想法是 用户单击链接 OWA 将打开并显示特定的电子邮件对话 前提是用户有权访问 In this https social msdn microsoft com F
  • 在 Codeigniter 中搜索数据 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 您能帮忙在 Codeigniter
  • Quartz CronExpression 获取所有表达式参数信息

    跟随我的上一个问题 https stackoverflow com questions 9699323 java quartz get all details from a scheduled job 9699495 comment1233
  • C# - 如何获取 oracle long 原始类型值

    如何使用 C 获取 long 原始类型值 由于你没有发布任何代码 我不知道你知道多少 我假设您已经了解如何使用 OracleDataReader 执行查询并返回结果集 LONG 和 LONG RAW 列有一个问题 您必须设置InitialL
  • 如何根据目标计算机(32 位或 64 位)有条件地使用 WiX 安装文件?

    我有一个包含 32 位版本和 64 位版本的文件 如果我在 32 位计算机上安装应用程序 我希望安装该文件的 32 位版本 同样 如果安装在 64 位计算机上运行 则应安装 64 位版本 如何检查使用 WiX 运行安装程序的机器类型 拜托
  • 为自定义组件创建样式的正确方法

    我在另一篇文章的末尾问过这个问题 但觉得这个话题需要一个自己的问题 如果我用自己的 style 创建了自己的组件 那么在不修改默认值的情况下将其与 Delphi 提供的定义样式合并的正确过程是什么 我可以将默认样式嵌入到我创建的组件中 并且
  • 反转 SVG 路径

    有没有简单的方法来反转 SVG 路径 我怎样才能让它从左上角开始 而不是从右下角开始
  • KeyCollection 作为 IEnumerable 会产生不一致的 LINQ 行为

    以下代码打印 false IEnumerable
  • 具有可移动和可旋转角色/物体/等的游戏中的 AABB

    我正在创建我的第一个 3D 游戏 但遇到了一些问题 我读到AABB https en wikipedia org wiki Minimum bounding box Axis aligned minimum bounding box相交以及
  • 正则表达式获取年份的最后两位数

    我必须使用正则表达式才能获取年份的最后两位数字 但前提是存在 4 位数字 我有以下正则表达式 当有 4 位数字时 它可以完美工作 示例 2014 14 2 然而 我需要这个只有在出现 4 位数字时才起作用 当只有 2 位数字存在时 我在清空
  • lupdate 和条件包含在 .pro 文件中

    我有一个包含条件包含的 pro 文件 如下所示 contains CONFIG embedded SOURCES a cpp HEADERS a h else SOURCES b cpp HEADERS b h 当我从终端运行 lupdat
  • 臭名昭著的 Apache 错误“父进程:子进程已退出,状态为 3221225477”

    我读过一些与臭名昭著的 Apache 错误相关的问题和回复 Apache error notice Parent child process exited with status 3221225477 Restarting 但到目前为止 没
  • EditorJS 总是呈现两个编辑器

    我正在尝试使用 EditorJS 的编辑器 一切工作正常 除了当我第一次加载页面时 它会在开始时初始化两个编辑器 并在每次重新加载页面时不断附加新编辑器 但它们都在里面 div div 分区我有什么遗漏的吗 react etc import
  • Webpack Uglify CSS 中的错误

    我强调要让 Uglify 与我的项目一起工作 以前我使用过 Uglify 并且没有出现问题 但现在我认为这与 SASS 相关 ERROR in css loader sass loader app scss global header sc
  • 替换表达式树中的类型

    我正在努力修改表达式树 我简化了示例 以便更容易在此处显示 让我们从两个类开始 public class Filter public string FilterableProperty1 get set public string Filt
  • 选择 * 与选择列

    如果我只需要 2 3 列并且我查询SELECT 与在选择查询中提供这些列不同 更多 更少 I O 或内存是否会导致性能下降 如果我在不需要的情况下选择 则可能会出现网络开销 但是在选择操作中 数据库引擎是否总是从磁盘中提取原子元组 或者只提
  • CMake:如何在 Visual Studio 项目中的“头文件”中显示标题?

    我用 C 创建了一个简单的库项目 并添加了 CMake 文件以自动生成 Visual Studio 项目 我的小项目只包含 2 个文件 include testproject testproject h src testproject cp
  • C# 自增运算符错误:操作数语法不正确?

    我正在看the docs https learn microsoft com en us dotnet csharp language reference operators increment operator并尝试了解操作员的实际工作原