iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >C#中有哪些复合赋值运算符
  • 107
分享到

C#中有哪些复合赋值运算符

2023-06-17 23:06:43 107人浏览 安东尼
摘要

这篇文章将为大家详细讲解有关C#中有哪些复合赋值运算符,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。C#赋值运算符之复合赋值运算符的使用:x op= y 形式的运算是这样来处理的:先将二元运

这篇文章将为大家详细讲解有关C#中有哪些复合赋值运算符,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

C#赋值运算符之复合赋值运算符的使用:

x op= y 形式的运算是这样来处理的:先将二元运算符重载决策应用于运算 x op y。然后,

如果选定的运算符的返回类型可“隐式”转换为 x 的类型,则运算按 x = x op y 计算,但 x 只计算一次。

否则,如果选定运算符是预定义的运算符,选定运算符的返回类型可“显式”转换为 x 的类型,并且 y 可“隐式”转换为 x 的类型,则运算按 x = (T)(x op y) 计算(其中 T 是 x 的类型),但 x 只计算一次。

否则,复合赋值无效,且发生编译时错误。

C#赋值运算符之复合赋值运算符使用遇到的问题:

术语“只计算一次”表示:在 x op y 的计算中,任何 x 的要素表达式的计算结果都临时保存起来,然后在执行对 x 的赋值时重用这些结果。例如,在计算赋值 A()[B()] += C() 时(其中 A 为返回 int[] 的方法,B 和 C 为返回 int 的方法),按 A、B、C 的顺序只调用一次这些方法。

当复合赋值的左操作数为属性访问或索引器访问时,属性或索引器必须同时具有 get 访问器和 set 访问器。如果不是这样,则发生编译时错误。

上面的第二条规则允许在某些上下文中将 x op= y 按 x = (T)(x op y) 计算。按此规则,当左操作数为 sbyte、byte、short、ushort 或 char 类型时,预定义的运算符可用来构造复合运算符。甚至当两个参数都为这些类型之一时,预定义的运算符也产生 int 类型的结果.因此,不进行强制转换,就不可能把结果赋值给左操作数。

C#赋值运算符之复合赋值运算符使用的实例操作:

此规则对预定义运算符的直观效果只是:如果同时允许 x op y 和 x = y,则允许 x op= y。在下面的示例中,

byte b = 0;  char ch = '\0';  int i = 0;  b += 1;            // Ok  b += 1000;         // Error, b = 1000 not permitted  b += i;            // Error, b = i not permitted  b += (byte)i;      // Ok  ch += 1;            // Error, ch = 1 not permitted  ch += (char)1;      // Ok

每个错误的直观理由是对应的简单赋值也发生错误。

关于C#中有哪些复合赋值运算符就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: C#中有哪些复合赋值运算符

本文链接: https://www.lsjlt.com/news/294814.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作