C#_02.16_基础七_.NET表达式&运算符

一、字面量:

字面量和变量的关系来理解字面量会比较简单:

因此字面量是源代码中键入已知的(我们知道它是多少的)值。也可以理解是等号右边的非创建实例的值。可以是布尔、字符、null等。

字面量可以分为:

² 数字字面量;1,2,3,-1;-2;-3;

² 实数字面量;1.9(double类型); 0.3F(float类型);0.3e-19

² 字符字面量;‘a’

² 字符串字面量;“a”

² 布尔字面量;true / false。

其中字符字面量会有一堆的转义字符:

(图片引自C#图解)

二、运算符的优先级:

(图片引自C#图解)

三、运算符:

在这个当中需要注意的是:

1、

逻辑运算符:

 

2、位移运算符:

位移运算符意思是堆与一个数值的二进制进行左移或者右移,左移时右边用0补足,右移时益处的部分不管他:

3、条件运算符:

条件运算符是三元运算符,其实使用if else是完全可以实现和三元运算符同样功能的,但是我们为什么要这样子做呢?因为if else是控制流语句,返回的应该是两种行为中的一个,而三元运算符是运算符,返回的应该是值。

4、typeof大法:

Typeof运算符作用是获取指定类的信息:

类如下:

结果如下:

另外还有一个方法GetType();这个方法对每一个类型的实例都有效,可以获得对应实例的类型名。Eg:

四、关于语句的一点点思考:

在说关于运算符的时候书本上面提到了一点是:运算符完成操作可能产生副作用,但是我并不明白副作用是什么意思,现在明白了:

运算符进行操作就会产生一个返回值,如1+2,这个运算符进行操作就会产生返回值3.这个是我们都知道的,但是其他的一些运算符比如“=”,这个运算符也会产生返回值。举栗子:

X=10;

以上表达式使用了赋值运算符,我们都知道把X的值赋值为10,但是事实上这个我们想要的效果是一个副作用。怎么说呢?运算符进行操作会产生返回值,X=10是赋值操作也是会产生返回值,返回值是X的新值,也就是说X=10这个操作返回了一个值“10”,这个才是这个运算符的正规的效果,而使x的值变成了10是一个副作用,因为原本运算符的操作就是为了返回值,让x=10只是这一个操作的一个副作用,在内存中存储了x的值,分配了内存空间,这个是副作用,而我们却没有用变量接收这个赋值操作的返回值。所以有一些运算符副作用才是我们想要的。我们可以进行测试:

以上测试我们发现:赋值运算是返回了a的新值。

Switch语句下面的每一个分支都需要有跳转语句跳出来:如break,return,throw之类的。

C#_02.16_基础七_.NET表达式&运算符的更多相关文章

  1. C#_02.15_基础六_.NET类

    C#_02.15_基础六_.NET类 一.类继承是一个类在另一个类的基础上进行的扩展. 继承的子类拥有父类的全部成员.索引子类拥有本身的全部成员以及父类的全部成员. 可以对基类成员进行隐藏,如果必须的 ...

  2. C#_02.13_基础四_.NET方法

    C#_02.13_基础四_.NET方法 一.方法概述: 方法是一块具有名称的代码.可以通过方法进行调用而在别的地方执行,也可以把数据传入方法并接受数据输出. 二.方法的结构: 方法头  AND  方法 ...

  3. C#_02.14_基础五_.NET类

    C#_02.14_基础五_.NET类 一.类实例: 我们前面说过类是一个模板,我们通过类创建一个又一个的实例,通常情况下类当中的变量是每一个实例都各有一份的,互相不影响,而静态字段是除外的,静态字段是 ...

  4. C#_02.13_基础三_.NET类基础

    C#_02.13_基础三_.NET类基础 一.类概述: 类是一个能存储数据和功能并执行代码的数据结构,包含数据成员和函数成员.(有什么和能够干什么) 运行中的程序是一组相互作用的对象的集合. 二.为类 ...

  5. C#_02.12_基础二_.NET类型存储和变量

    C#_02.12_基础二_.NET类型存储和变量 一.核心一句:C#程序是一组类型声明(留待后面慢慢体会,现在不是很理解,不强说了) 二.数据类型: 1.预定义了16种数据类型: 其中13种简单数据类 ...

  6. C#_02.10_基础一_.NET框架

    C#_02.10_基础一_.NET框架 一.概念: .NET框架是一个多语言组件开发和执行环境,它提供了一个跨语言的统一编程环境. 解读: 1..net框架是一个编程环境, 2.可以进行多语言的开发和 ...

  7. Web基础了解版07-EL表达式-运算符-11个隐式对象

    EL EL(Expression Language)是JSP内置的表达式语言,用以访问页面的上下文以及不同作用域中的对象 ,取得对象属性的值,或执行简单的运算或判断操作.EL在得到某个数据时,会自动进 ...

  8. C语言- 基础数据结构和算法 - 09 栈的应用_中缀表达式转后缀表达式20220611

    09 栈的应用_中缀表达式转后缀表达式20220611 听黑马程序员教程<基础数据结构和算法 (C版本)>, 照着老师所讲抄的, 视频地址https://www.bilibili.com/ ...

  9. day 72 Django基础七之Ajax

    Django基础七之Ajax   本节目录 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解) 六 同源策略与 ...

随机推荐

  1. PHP SOAP 发送XML

    <?php $xmldata = <<<EOT <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap. ...

  2. mzf的考验

    题解: 比较水吧 显然是平衡树的操作 然后就是写写写 用对拍来查错相比之下直接样例查还是比较容易的 刚开始没有优化常数没开O2就变成暴力分了smg 开了O2就a了 代码: #include <b ...

  3. 基于spring security 实现前后端分离项目权限控制

    前后端分离的项目,前端有菜单(menu),后端有API(backendApi),一个menu对应的页面有N个API接口来支持,本文介绍如何基于spring security实现前后端的同步权限控制. ...

  4. python全栈开发day60-django_app ORM 完整登录案例

    day60 内容回顾: 1. HTTP协议: 1.请求(浏览器发给服务端的消息——request) 请求方法 URL 协议版本\r\n k1:v1\r\n k2:v2\r\n \r\n 请求体 —— ...

  5. 没有IDE的日子

    没有QT Creator,没有VS2008,没有Eclipse,也没有KDevelop,忘掉一切IDE. 好吧,现在我只有Vim了,可我跟Vim不熟. Vim魅力四射,光芒万丈,高高在上,她就是传说中 ...

  6. asp gridview

    <table> <tr> <td colspan="5">请选择试卷制定人员<span style="color:red&quo ...

  7. Java中文字符所占的字节数

    Java语言中,中文字符所占的字节数取决于字符的编码方式,一般情况下,采用ISO8859-1编码方式时,一个中文字符与一个英文字符一样只占1个字节:采用GB2312或GBK编码方式时,一个中文字符占2 ...

  8. netty05(netty的一些介绍)

    netty的一些理论 netty是一个异步事件驱动的网络应用框架(NIO框架),所有IO操作都是异步非阻塞的,NIO是对IO的一个补充 用于开发客户端和服务器的通信(TCP/UDP)长短连接 nett ...

  9. network is unreachable 网关PING不通解决办法

    所里有几台机器没有办法ping通网关,但是ping交换机里的其它机器都可以ping通,其它机器ping网关也可以ping通.那么就排出了硬件的故障,主要问题就在问题机器的路由表上了. 看一下路由表 r ...

  10. jupyter notebook不能选择虚拟环境的解决方法

    今天使用dlib没有py37版本,因此创建了Version_36虚拟环境.但jupyter notebook默认的内核找不到新建的虚拟环境,解决方法是需要安装两个包: × ipykernel × nb ...