ImageVerifierCode 换一换
格式:DOCX , 页数:8 ,大小:20.27KB ,
资源ID:7667008      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-7667008.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c# 一元表达式.docx)为本站会员(scg750829)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

c# 一元表达式.docx

1、1. 一元表达式11 一元正值运算符12 一元负值运算符13 逻辑非运算符14 按位求补运算符15 间接运算符16 地址运算符17 前缀增量和减量运算符18 强制类型转换表达式1. 一元表达式unary-expression: primary-expression + unary-expression - unary-expression ! unary-expression unary-expression * unary-expression uint operator +(uint x); long operator +(long x); ulong operator +(ulong x

2、); float operator +(float x); double operator +(double x); decimal operator +(decimal x); 对于以上每个运算符,其结果就是操作数的值。 12 一元负值运算符对于 x 形式的操作,一元运算符重载解析(7.2.3)用于选择特定的运算符实现。操作数被转换成所选运算符的参数类型,结果的类型是该运算符的返回类型。预定义的负值操作符为: 整数取负: int operator (int x); long operator (long x); 结果是 0 减去 x 的计算值。在 checked 环境中,如果 x 的值是最大

3、的负 int 或 long 型整数,将产生 OverflowException 异常(上溢出异常) 。在 unchecked 环境中,如果 x 的值是最大的负 int 或 long 型整数,结果是同一值,并且不报告有溢出。如果取负运算符的操作数是 uint 类型,它会被转换成 long 类型,而且结果的类型也为 long。有一个规则是例外,即允许 int 型值 -2147483648(-231)被写成十进制整数文字(2.5.3.2) 。如果取负运算符的操作数是 ulong 类型,将产生错误。有一个规则是例外,即允许 long 型值 9223372036854775808(-2 63)被写成十进

4、制整数文字(错误!未找到引用源。 ) 。 浮点取负: float operator (float x); double operator (double x); 结果是符号反转的 x 值。如果 x 是 NaN,结果仍是 NaN。 小数取负: decimal operator (decimal x); 结果是 0 减去 x 的计算值。 13 逻辑非运算符 对于!x 形式的操作,一元运算符重载解析(7.2.3 )用于选择特定的运算符实现。操作数被转换成所选运算符的参数类型,结果的类型是该运算符的返回类型。只有一种预定义的逻辑非运算符: bool operator !(bool x); 该运算符计算

5、操作数的逻辑非:如果操作数是 true,结果就是false;如果操作数是 false,结果就是 true。 14 按位求补运算符对于 x 形式的操作,一元运算符重载解析(7.2.3)用于选择特定的运算符实现。操作数被转换成所选运算符的参数类型,结果的类型是该运算符的返回类型。预定义的按位求补运算符为: int operator (int x); uint operator (uint x); long operator (long x); ulong operator (ulong x); 对于以上每个运算符,操作的结果是 x 的按位补码。 每个枚举类型 E 隐含地提供下列按位求补运算符: E

6、 operator (E x); 当 x 是带有基本类型 U 的枚举类型 E 的表达式,那么 x 的计算结果与 (E)(U)x) 的计算结果完全相同。 15 间接运算符 16 地址运算符 17 前缀增量和减量运算符pre-increment-expression: + unary-expression pre-decrement-expression: - unary-expression 前缀增量或减量运算的操作数必须是变量类表达式、属性访问或索引访问。操作的结果是一个与操作数同类型的值。 如果前缀增量或减量运算是属性或索引访问,该属性或索引必须具有 get 和 set 两个访问函数。如果不

7、是这样,将出现编译错误。 一元运算符重载解析(7.2.3)用于选择特定的运算符实现。预定义的 + 和 - 运算符存在于以下类型中:sbyte、byte、short、ushort、int、uint 、long、ulong 、char、float 、double、decimal 以及任何 enum 类型。预定义的 + 运算符返回值为参数加 1,预定义的 - 运算符返回值为参数减 1。 +x 或 -x 形式的前缀增量或减量操作的运行时处理包括以下几步: 如果 x 为变量: 计算 x 产生变量。 所选运算符被调用时参数为 x 的值。 运算符返回的值存储在 x 的计算值所在的位置。 运算符返回的值成为操

8、作的结果。 如果 x 为属性或索引访问: 计算实例表达式(如果 x 不是 static) 、参数列表(如果 x 是索引访问)和 x,结果用于下面的 get 和 set 访问函数调用。 调用 x 的 get 访问函数。 将 get 访问函数 的返回值作为参数,调用所选运算符。 将运算符的返回值作为 value 参数,调用 x 的 set 访问函数。 运算符返回的值成为操作的结果。 + 和 - 运算符也支持后缀表示法,如 7.5.9 所述。x+ 或 x- 的结果是操作前 x 的值,而 +x 或 -x 的值是操作后 x 的值。在每一种情况下,x 本身在操作后都具有同样的值。 用后缀和前缀表示法都可以

9、调用运算符 + 或运算符 - 的实现。这两种表示法有相同的运算符实现。 18 强制类型转换表达式强制类型转换表达式用于显式地将表达式转换成一个给定类型。 cast-expression: ( type ) unary-expression 设 T 为类型,E 为一元表达式,(T)E 形式的强制类型转换表达式将 E 的值显式地转换(错误!未找到引用源。 )为类型 T。如果没有将 E 的类型显式地转换到 T,将出现错误。另外,结果是显式转换产生的数值。即使 E 表示一个变量,结果也总是一个数值。 强制类型转换表达式的语法导致某些句法歧义。例如,表达式 (x)y 既可以被解释为强制类型转换表达式(将

10、 y 的强制类型转换为类型 x)也可解释为附加表达式与加括号表达式的结合(计算 x y 的值) 。 为解决强制类型转换表达式的多义性,存在以下规则:只有当下列至少一条为真时,包含在括号中的一个或多个标记( tokens) (错误!未找到引用源。 )序列才被认为是强制类型转换表达式: 标记的序列在语法上对类型是正确的,对表达式是不正确的。 标记的序列在语法上对类型是正确的,并且结束括号后紧跟的标记是“” 、 “!”、 “(”、标识符(2.5.1) 、文字( 错误!未找到引用源。 )或除 is 之外的关键字( 错误!未找到引用源。 ) 。 以上规则意味着只有当强制类型转换表达式的结构是明显的,它才被认为是一个强制类型转换表达式。 上述“正确的语法”只意味着标志的序列必须遵从特定语法。它并不考虑构成的标识符的实际意义。例如,如果 x 和 y 为标识符,那么 x.y 对于类型而言语法正确,即使 x.y 实际上不表示一个类型。从所遵从的消除歧义规则来看,如果 x 和 y 是标识符,(x)y 、(x)(y) 和 (x)(-y) 是强制类型转换表达式,但 (x)-y 不是,即使 x 标识一个类型。然而,如果 x 是一个标识预定义类型(如 int)的关键字,那么所有四种形式都是强制类型转换表达式(因为关键字自己不可能是一个表达式) 。

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报