C#知识点
变量
定义:变量表示存储位置;
使用语法:<data_type> <variable_list>;
其中,data_type 必须是一个有效的 C# 数据类型,可以是 char、int、float、double 或其他用户自定义的数据类型。variable_list 可以由一个或多个用逗号分隔的标识符名称组成。
命名规范:1. 不能重名;2. 不能以数字开头;3. 不能有特殊符号(下划线_除外);4. 不能使用程序关键词;
类型
值类型(value type)和引用类型(reference type),区别:值类型直接包含它们的数据,每个变量都有自己的数据拷贝,互不影响;引用类型存储的是它们的数据引用,被认为是对象,两个变量如果引用同一个对象,其中一个变量的操作会影响另一个变量引用的对象。
常量
关键词:const
使用语法:const float PI=3.1415926f;
特性:必须初始化;不能被修改;
转义字符
双引号\“ 单引号\‘ 换行\n 斜杠\\ 制表符\t 光标退格\b 空字符\0 警报音\
作用:表示字符串中代表特殊含义的字符
类型转换:隐式转换、显示转换
含义:隐式转换:不同数值变量类型之间相互转换,隐式转换是指可以将小范围的数据类型转换为大范围的数据类型(decimal除外),不可以将大范围的数据类型转换为小范围的数据类型;有符号的数值变量类型不能隐式转换无符号;显示转换:强制类型转换,强制将将大范围的数据类型转换为小范围的数据类型,强制转换会造成数据丢失。
强制转换方式:
-
数值类型可以用括号强转:<variable_type> <variable_name> = (variable_type)variable_name;
-
Parse法,转字符串到对应类型:<variable_type> <variable_name> = variable_type.Parse(”字符串“);
-
Convert法,更全面:<variable_type> <variable_name> = Convert.ToInt32(变量或常量);
异常捕获
作用:捕捉错误,避免程序卡死
语法:
try
{
string str1 = Console.ReadLine();
int i2 = int.Parse(str1);
Console.WriteLine(i2);
}
catch
{
Console.WriteLine("请输入合法数字");
}
finally
{
Console.WriteLine("执行完毕");
}
算数运算符
运算顺序
字符串拼接
string = string1 + string2;
string = string.Format("待拼接的内容{1}{2}",内容1,内容2,......);
Console.WriteLine("{0}{1}", "hhah", "jajjfa");
条件运算符
< == != >= <= >
不同数值类型之间可以进行条件运算符的比较;特殊类型char string bool 只能同类型进行 == 和 != 比较;char可以自动转成数值与数值进行比较
逻辑运算符
与&& 或|| 非!
逻辑与优先级高于逻辑或
逻辑运算符短路规则:|| 有真则真;&& 有假则假;只要逻辑或、逻辑与的左边满足了条件,右边就不进行计算了
位运算符
将数值转换成2进制 再进行位运算
位与 & :对位运算,有0则0
位或 | :对位运算,有1则1
异或 ^:对位运算,相同为0,不同为1
位取反 ~:对位运算,0变1,1变0
//规则:写在数值前面,将数值转为2进制
//对位运算,0变1,1变0
int a = 5;
//原码:0000 0000 0000 0000 0000 0000 0000 0101
//补码:0000 0000 0000 0000 0000 0000 0000 0101
//取反:1111 1111 1111 1111 1111 1111 1111 1010
//取反之后,使用补码表示的,符号位为1表示一个负数,负数想得到原码,首先末尾-1,再取反得到最后的二进制原码
//a.末尾-1: 1111 1111 1111 1111 1111 1111 1111 1001
//b.符号位不变,取反:1000 0000 0000 0000 0000 0000 0000 0110
//最后计算为-6
//按位取反步骤:二进制原码——>二进制补码——>按位取反——>二进制原码
//负数的按位取反,负数的补码是符号位不变,其余各位一次取反,最后末尾+1
//然后,按位取反,符号位跟着一起取反,0变1,1变0
int c = ~a;
Console.WriteLine(c);
左移<< 和 右移>>:让一个数的2进制数进行左移和右移;左移几位,右侧加几个0;右移几位,右侧去掉几个数
三目运算符
基本语法
3个空位,2个符号
固定语法:空位 ? 空位 : 空位 ;
关键信息:bool类型?bool为真返回内容:bool返回为假返回的内容;
三目运算符会有返回值,这个返回值类型与变量的类型必须一致,并且必须使用。
第一空位:bool类型的表达式,bool变量,条件表达式,逻辑运算符表达式
if语句
满足条件执行if里的语句,不满足条件执行else里的语句
if(bool值类型)
{
执行语句内容
}
else
{
执行语句内容
}
switch语句
switch (变量)
{
case 常量:
满足条件执行的代码逻辑;
break;
case 常量:
满足条件条件执行的代码逻辑;
break;
default:
如果上面case的条件都不满足,就会执行default中的代码
break;
}
while语句
Break,跳出循环语句,如果放在嵌套在循环的if语句中,会跳出整个循环;如果放在嵌套在循环的switch语句中,不会会跳出整个循环;
continue,回到循环开始,继续执行,且continue之后的语句不执行;
do while语句
先至少执行一次语句块,然后再进行循环判断;
do
{
}while(false);
for循环
for( i=0; i<10; i++)
{
}
复杂数据类型
特点:1. 数据集合,多个数据集合在一起;2. 自定义,可以自定义名字;
类型:枚举、数组、结构体