1、关键字
C#中定义了很多关键字,关键字是构成C#基本语法的,不用去背,用的多就记住了
2、标识符
标识符是用来给类、方法、变量等命名的
命名规则:
(1)由字母、中文(不推荐)、数字、下划线组成;
(2)不能以数字开头;
(3)不能是关键字
C#语言是大小写敏感的:demo和Demo是两个标识符
驼峰命名法:每个单词第一个字母大写;
标识符要有意义;标识符的命名规范,不是强制规定,而是“潜规则”:类名、方法名用大写开头;变量名小写开头
3、变量
定义一个变量的格式:变量类型 变量名 = 初始值;
变量的作用域
一个变量在一个作用域下只能声明一次;
变量赋值
局部变量在使用前必须赋予初始值;
4、数值类型和显式隐式转换
整数类型:
数据类型 占用字节 取值范围
byte(字节) 1 0到255
short(短整形) 2 -2^15到2^15-1
int(整形) 4 -2^31到2^31-1
long(长征行) 8 -2^63到2^63-1
取值范围 long>int>short>byte
小数类型
数据类型 占用字节 取值范围
float(单精度浮点数) 4 不用记
double(双精度浮点数) 8 不用记
取值范围 double>float
如果声明的变量赋值超出取值范围,会出现编译错误;
类型转换
小取值范围的变量或常量 赋值给取值范围大的变量时,这是发生一个(自动)隐式类型转换 大范围的变量赋值给小范围变量的时候,不管是什么都会报错(无法将范围大的类型 隐式转换为范围小的类型。 这时需要用(强制)显式类型转换来告诉编译器:转吧,要转的类型不会超过范围的
转义符
\n回车 \t制表 \"引号 \是告诉编译器"\"后面的n有特殊含义,需要转换成特殊的字符
如果一个字符串有多个需要转义的字符,可以在字符串前面加"@"; 例如:@"c:\windows\system\cmd.txt" 这就把字符串的所有‘\‘转义成真正的‘\‘了
char类型
char类型只有一个字符;
bool类型
值只有固定的true和false两个
数值类型转换成字符串 Convert.ToString(要转的数字类型);
字符串转换成int类型 Convert.ToInt32(“要转的字符串”);
5、CTS(Common Type System)通用数据类型系统
.Net中定义了通用的数据类型:String、Int16、Int32、Int64、Boolean、Double;
通过转到定义可以看到这些都是类(结构体);
C#语言规范中定义了string、int、long、bool、doubl等原始类型,编译器会把这些类型翻译成CTS中的类
6、枚举类型
枚举是一种定义确定取值范围的特殊类型语法:
声明
1 enum Dir 2 { 3 East,West,South,North 4 } 5 6 //使用 7 Dir d = Dir.East;
7、基本运算符
(1)运算符就是加减乘除等符号:+、-、*、/;
(2)求余运算符 "%" 5%4=1 5%5=0
(3)自增:++是对一个变量进行自增运算
自减:自减运算
(4)+还可以对字符串进行拼接 “123”+“456”=“123456”
(5)+还可以和其它类型拼接
(6)提问:3+5+"hello"+5+3 结果是什么。 8hello53
8、赋值运算符"="
int i = 5;
应该读成声明int类型变量i,并且把5赋值给i;
9、值类型的赋值
值类型(数值类型、boolean、char、枚举、结构体等)是复制传递;
1 //如何交换两个int类型变量的值? 2 int i=10; 3 int j=20; 4 int temp=i;//定义一个临时中间变量,并把i的值交给temp 5 i=j;//把j的值给i;此时i的值在temp保管着 6 j=temp;//j拿到i放到temp里的值,这样就交换成功了 7 8 9 //想一想:下面的代码为什么不用中间变量都能交换两者之间的值? 10 int i=3; 11 int j=5; 12 i=i+j;//连个变量相加得出总和 13 j=i-j;//j拿到总和减去j自己的值就是i的值 14 i=i-j;//这时j的值已经是3,i拿到总和减去j=3的值就是原来j的值
原理就是小学时的加法和减法的定义:
加数+加数=和;
求另外一个加数就是把两数之和减去另一个已知的加数等同于被减数-减数=差;