C#_02.16_基础七_.NET表达式&运算符
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表达式&运算符的更多相关文章
- C#_02.15_基础六_.NET类
C#_02.15_基础六_.NET类 一.类继承是一个类在另一个类的基础上进行的扩展. 继承的子类拥有父类的全部成员.索引子类拥有本身的全部成员以及父类的全部成员. 可以对基类成员进行隐藏,如果必须的 ...
- C#_02.13_基础四_.NET方法
C#_02.13_基础四_.NET方法 一.方法概述: 方法是一块具有名称的代码.可以通过方法进行调用而在别的地方执行,也可以把数据传入方法并接受数据输出. 二.方法的结构: 方法头 AND 方法 ...
- C#_02.14_基础五_.NET类
C#_02.14_基础五_.NET类 一.类实例: 我们前面说过类是一个模板,我们通过类创建一个又一个的实例,通常情况下类当中的变量是每一个实例都各有一份的,互相不影响,而静态字段是除外的,静态字段是 ...
- C#_02.13_基础三_.NET类基础
C#_02.13_基础三_.NET类基础 一.类概述: 类是一个能存储数据和功能并执行代码的数据结构,包含数据成员和函数成员.(有什么和能够干什么) 运行中的程序是一组相互作用的对象的集合. 二.为类 ...
- C#_02.12_基础二_.NET类型存储和变量
C#_02.12_基础二_.NET类型存储和变量 一.核心一句:C#程序是一组类型声明(留待后面慢慢体会,现在不是很理解,不强说了) 二.数据类型: 1.预定义了16种数据类型: 其中13种简单数据类 ...
- C#_02.10_基础一_.NET框架
C#_02.10_基础一_.NET框架 一.概念: .NET框架是一个多语言组件开发和执行环境,它提供了一个跨语言的统一编程环境. 解读: 1..net框架是一个编程环境, 2.可以进行多语言的开发和 ...
- Web基础了解版07-EL表达式-运算符-11个隐式对象
EL EL(Expression Language)是JSP内置的表达式语言,用以访问页面的上下文以及不同作用域中的对象 ,取得对象属性的值,或执行简单的运算或判断操作.EL在得到某个数据时,会自动进 ...
- C语言- 基础数据结构和算法 - 09 栈的应用_中缀表达式转后缀表达式20220611
09 栈的应用_中缀表达式转后缀表达式20220611 听黑马程序员教程<基础数据结构和算法 (C版本)>, 照着老师所讲抄的, 视频地址https://www.bilibili.com/ ...
- day 72 Django基础七之Ajax
Django基础七之Ajax 本节目录 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解) 六 同源策略与 ...
随机推荐
- [转] UniCode编码表
Unicode编码则是采用双字节16位来进行编号,可编65536字符,基本上包含了世界上所有的语言字符,它也就成为了全世界一种通用的编码,而且用十六进制4位表示一个编码,非常简结直观,为大多数开发者所 ...
- noip宝藏
题解: 我觉得状压比搜索不知道简单到哪里去了.. 为了练习搜索...想了一下这题的搜索.. 然后会发现想想就很容易想到dp.. 最后的搜索大概是这样的 我们会发现有一类搜索都是这样 你会重复(可能是指 ...
- mongo 分片
// use ebay // sh.enableSharding("ebay") // db.getCollection("ebay_total_menu_detail_ ...
- 使用link rel="shortcut icon"为网页标题加图标
<title>会员卡券</title> <link rel="shortcut icon" href="http://GT/img/favi ...
- 029 c3p0的小测试
今天被问到这个问题,就实验了一下,后续会继续补充一些配置项的意思. 一:操作步骤 1.大纲 2.新建sql -- ---------------------------- -- Table struc ...
- 为什么分布式一定要有Redis?
这篇文档是读了一个公众号的文章后修改后复制,以前的学习深度不够,现在还是理解不够,以后再写文档,继续加深. 一:说明 1.说明 考虑到绝大部分写业务的程序员,在实际开发中使用 Redis 的时候,只会 ...
- context-param和init-param的区别
http://www.cnblogs.com/hzj-/articles/1689836.html
- sql查询count 单独字段不同值
1.单表查询 SELECT COUNT(CASE WHEN (字段=值列1) THEN reportstatus END) AS 已上报,COUNT(CASE WHEN (字段=值列0) THEN 字 ...
- vee-validate校验demo
//太长了,把异步校验放到前面吧: VeeValidate.Validator.extend('checkLoginName',{ getMessage:function () { return &q ...
- TF之AE:AE实现TF自带数据集数字真实值对比AE先encoder后decoder预测数字的精确对比—Jason niu
import tensorflow as tf import numpy as np import matplotlib.pyplot as plt #Import MNIST data from t ...