1.调用writeline方法后会输出括号内的字符串,同时在输出之后还会自动换行
1.左边是扳手的都是属性,是方块的都是方法
2.定义类 --- 做工具 ; 定义函数 --- 做方法,main方法 --- 程序的入口方法 ; 定义命名空间 --- 决定类的住址
1.调用一个方法的步骤:首先引入类所在的命名空间,然后在命名空间中找到类,最后在类中找到方法进行调用
2.命名空间其实就相当于类的地址,计算机会通过命名空间 + 类名来找到具体的类
3.为了简化代码,我们可以在代码段的开头提前引入命名空间 --- using + 空间名 ,这样就不需要每次调用类时都得先写上对应的命名空间名了
1.命名空间是对类的划分,这样子可以让计算机区分不同命名空间下的同名类(PS : 同一个命名空间中的类不能够重名,不然的话就会报错)
2.命名空间也不能够重名
3.写一个C#文件的流程:定义命名空间 --- 定义类 --- 定义类中的方法 --- 定义方法中的语句(如果需要用到其它命名空间的类的话,记得在定义命名空间前引入这些类对应的命名空间)
1.第二个快捷键的作用是将选中的代码按照层次自动对齐
(PS : 上面这些快捷键是VS独有的哦!)
我们的程序在那里运行? --- 在内存中运行
运行程序的时候读取数据和计算数据的都是CPU,而我们存储数据的地方则是硬盘,但是问题来了,硬盘的读写速度非常慢(但是存储空间大),不能够满足CPU的需求,于是人们又发明了内存,内存的读写速度很快,但是存储空间小,内存先从硬盘中读入数据并存储(缓存),然后CPU从内存中读入数据
Mbps是按比特位来算的,而MBps则是按字节来算的!
1.有符号就是有正有负
1.浮点数后面要加上后缀,不加后缀的话默认这个浮点数是double类型的浮点数(+f -- float 单精度浮点数 ,+d --- double 双精度浮点数 ,+m --- decimal 16字节的浮点数)
1.命名不要嫌麻烦,一定要规范!!! 小写字母开头,用单词表示,多个单词时第二个以及后面的单词要首字母大写,然后变量名的开头写上类型前缀方便区分: 比如 intAge
1.上面这段代码的最终输出结果是false ,原因是用二进制计算时无法准确的表示 1 / 10,如果计算的理论结果中有0.1的话,最终计算机计算出的结果不会等于0.1(误差造成),所以上面这段代码的输出结果是false,而解决办法就是使用 decimal类型的小数来进行计算(目前)
2.给一个语句打了断点之后,开始调试程序,程序会自动在执行完打了断点的语句的前一条语句后停下,直到我们按了逐语句执行后才会继续执行语句。
3.在C#中如果想让字符串和字符串,字符串和其它数据类型拼接在一起成为一个新的字符串的话就用 + 号
字符串a + 字符串b = “字符串a字符串b” ,其它的同理
4.console.readline()方法读取到的所有数据都会以字符串的形式返回
1.项目名被加粗的项目是解决方案的默认启动项,程序执行时会自动执行解决方案中的默认启动项,我们是可以更改这个这个默认启动项的:点击想要设为默认启动项的项目,然后右键,然后选择设为启动项即可
1.虽然可以直接使用 + 号来实现字符串的拼贴,但是这种实现方式的可读性较差,接下来我们将介绍一种更合理的拼贴方式 --- 占位符拼贴法
a.使用占位符拼贴法的前提是调用string类中的Format(格式)方法,传给方法的第一个参数是一个字符串,我们可以在字符串中需要的位置插入占位符,占位符的花括号{}中填的数字按照其出现的次序分别是0,1,2,3...
b.处理完占位符后我们就需要将替换占位符的变量传入,第一个变量替换{0},第二个替换{1}....
c.占位符必须被替换!不能够不替换!
(根据指定精度显示的意思是f后面跟的是精确到小数点后几位,如果超过了精度就直接四舍五入,还有后面那个P0的0表示的是小数点后不显示数)
1.在writeline方法的括号中可以不调用Format方法直接使用占位符,使用的方式和调用Format方法时一样
2.给定一个字符串,字符串中包含一个占位符,替换这个占位符的是一个承接数字的变量,如果我们想让这个数字以一种特定的形式显示时,比如以货币的形式显示,我们可以对占位符进行操作来实现我们的目的
其中如果想让数字以货币的形式显示的话就在占位符中的数字后面加上 :c 即可
这种操作方式称为标准数字字符串格式化(格式化为我们给定的格式)
1.本来双引号表示的是字符串,如果我们想让双引号就表示双引号文本的话需要在它前面加上转义字符 \ 来将其转义
1.对于字符类型如果想要表示空字符的话,必须在单引号之间加上 \0;而对于字符串类型而言,如果想表示空字符串的话,直接双引号之间什么都不写就ok了1. \r\n 就是C#中的换行符
2.在字符串中加上 \t 水平制表符就相当于在字符串中对应位置留出了一个tap键长度的空白
1.CLS就是公共语言规范,.Net框架是支持多语言开发的,不同的语言会在经过CLS编译后转换为通用语言(中间语言)
通用语言再经过CLR编译(公共语言运行时编译)转换为机械码在计算机中执行
2.高级语言在生成.exe文件时经过CLS公共语言规范编译为中间语言,点击.exe文件运行时,中间语言又经过CLS公共语言运行时编译为机器语言在计算机中执行
1.C#中允许同时声明和赋值多个变量
1.出现多个赋值运算符时候,从右往左依次赋值,比如上面这个就是先给num02赋值1,然后再将num02赋值给num01
2.整型变量中只能够存储整型,如果赋值浮点型数据给整型变量的话,变量会先将小数部分截断,然后再进行存储
3.整型变量和整型变量相除也只能够得到整型变量(小数部分会被截断),如果想要保留小数部分的话就只能够用浮点数类型来除
1.取余取余,取的是余数
1.比较运算符的本质就是一次逻辑判断,判断为真返回true,为假返回false
1.+=,*=这种称为快捷运算符,上图中的上下两个式子是相互等价的
2.a++是先调用a然后再将a+1,++a则是先将a+1然后再调用a
1.这个三元表达式的语义就是:判断条件是否为真,如果为真的话返回左边的结果,如果为假的话返回右边的结果
2.规定三元运算符中的两个结果的类型必须相等,如果不相等的话程序会报错
1.方法里面能够调用方法,但是方法里面不能够定义方法,方法的定义只能在类中进行
1..Parse:语法分析,这个被称为语法分析转换 --- 这个转换只能够将特定的字符串转换为特定的数据类型,转换的原理是字符串识别和分析
2.每一个非string类型都能够调用pause方法,这个方法是直接通过类调用的,调用时括号内放与要转换的数据类型“像”的字符串,然后由要转换的数据类型调用parse方法
(pause方法中的参数只能够是字符串,不能够是其它类型的变量)
1.任意类型都具有一个Tostring方法,这个方法可以将任意类型的数据转换为字符串类型并返回
(上面所有的转换方法都不会改变被转换对象(不是引用或者取址传递而是拷贝传递),且都会将转换结果返回)
2.C#中访问字符串中某个字符的方法:
一样是用中括号加下标的方法
1.隐式类型转换与显式类型转换 --- 小转大可以直接隐式类型转换(不发生截断操作,而是直接加0),大转小只能够显示类型转换(要发生截断操作)
(强制转换其实就是显示转换)
2.浮点型和decimal类型不能够相加,因为这两种数据类型在内存中的存储方式不同,浮点型是以近似的方式存储,而decimal类型则是精确存储
3.两个小于int的数据类型相加时会先进行隐式类型转换,转换为整型,然后再进行相加,相加的结果为整型
4.如果是大于等于int 的数据类型相加的话也会先进行隐式类型转换 --- 将相对较小的数据类型转换为另一个相对较大的数据类型(如果两个数据类型大小相等就不发生转换直接相加) --- 转换完成后才进行相加,相加的结果为转换后的数据类型