【C#】总结一
昨天历时两个月将C#视频看完了,给我的感觉是非常好玩。尤其在飞行棋那块,不光做出来了,代码的思维和逻辑结构理解的也很透彻,记得飞行棋结束后立即对它写了一篇总结,分为了3大部分,即使日后有些遗忘,再回来翻看也可以想起。
下面针对C#视频进行一次整体的梳理,总结。
运算符
赋值运算符
=“,赋值运算符可以重复赋值,赋了新值,老值不复存在;
如果+两边有一个是字符串,那么这个+起到了连接的作用
算术运算符
1、+, -, *, /,%(取余 取模)
Int num=10 % 3; 定义一个Int类型求10和3的余数
Int类型变量起到相加作用;两人Int类型相除是整数
2、加加 ++ (减减与加加一样)后加:num++; 代表num本身加1
int number=10+num++; 如果涉及运算,先取num的原值进行运算,之后再本身加1
前加:++num;
Int number=++num+10; 涉及到运算,先自身加1,在进行计算
复合赋值运算符
+=、-+、*=、/=、%=
举+=例子说明:number+=10就相当于number=number+10
关系运算符(用来比较的)
包括><、==(等于,相等)、!=(不等于)、>=(大于等于,包含)、<=(小于等于,包含)
用bool来判断对错
逻辑运算符
&&(逻辑与)-并且、||(逻辑或)--或者、!(逻辑非)--取反
逻辑运算符两边一般是用关系表达式
逻辑与:如果表达式1与表达式2有一个为false,那么整个表达式的结果为false
如果两个表达式的结果都为true,那么整个表达式的结果为true
20>6&&5>4
逻辑或:如果表达式1或表达式2有一个为true,那么整个表达式的结果为true
如果两个表达式的结果都为false,那么整个表达式的结果为false
20>4||87<54
逻辑非 :如果表达式是正确的,那么取反后就是错误的
如果表达式是错误的,那么取反后就是正确的
类型自动转换规则
隐式转换(多小数)
参与运算(算术运算和赋值运算)的操作数和结果类型必须一致。当不一致时,满足下面条件,系统自动完成类型转换
1)两种类型兼容
.int和double兼容(都是数字类型)
2)目标类型大于源类型
.double>int
3)对于表达式
.如果操作数其中有一个是double类型,那么结果必是double类型。Int pot=a/b-------"/"两边的a、b就是操作数
显式转换(强制转换) 丢精度
想把double转换成int类型数据,就在要转换的值的前边加一个括号,括号里写你要转换的数据类型
double num1=90.45;
int num2 = (int)num1;
各种类型转换
1、Int age=Convert.ToInt32(你要转化的数据类型的值)
2、int age=int.parse(字符串)
3、bool result=int.TryParse(字符串,out int类型的变量) 避免异常
4、一切类型都可以调用.TOString()方法装换成字符串类型
例如:int num=10; String str=num.ToString();
if结构
就是一个判断
If(条件或bool值,可以是关系,逻辑表达式)
{
语句1;
}
Else
{
语句2;
}
If 如果是true,执行大括号里面的代码,false一条语句都不执行
If else 有条件的执行一条语句,至少执行一条语句
If else if多用于分段或范围的判断
Switch -case 多用于值的判断
Try-catch 解决异常的
循环
随机数
Random---产生随机数的类,要用到随机数就要先写random
Random a =new Random();
Int num=a.Next(0,10)
Console.WriteLine(num);
Console.ReadKey();
枚举(可以强转int类型)
枚举声明语法:
(可写可不写)【访问修饰符】 enmu 枚举名
{
值1,
值2
}
Public enum Gender 名字自己写
{
男,
女
} 以上是在命名空间,类以上写
Gender 变量名=Gender.男;
转换int类型:int 变量名1=(int)变量名;
转行Gender: Gender 变量名=(Gender)数字;
字符串转换Gender类型的值:Gender g = (Gender)(Enum.Parse(typeof(Gender), str)); (会用就行)
结构体
有struct就是结构体 ,一次性声明多个不同的变量
结构声明语法:
【访问修饰符】 struct 结构名
{
结构体
}
public struct Person
{
public string _name; //字段
public char _gender;
public int _age;
} 以上是在命名空间,类以上写
Person per;
per._name ="曹轩";
per ._gender ='男';
per._age =18;
数组
一次性声明多个相同类型的变量
四种方式:
(1)Int nums1=new int[10];
10代表长度,长度是多少元素就是多少。索引永远都是长度减1
nums[6]=100;
nums[6]=100 代表给索引为6的赋值为100
(2)Int[ ]nums2=new numbers[ ]{1,2,3,4};--------只能存4个值,下标为2的存的是3
(3)int[ ]nums3=new int[5]{1,2,3,4,5}-------------中括号写值了,大括号就必须写,下标为0存的是1
(4)int[ ]nums4={1,2,3,4,5}------------------------下标为4存的是5
数组的存值和取值都是通过索引或下标来进行赋值和取值的
用数组求最大最小值注意定义Int类型时不要用0,
正确写法:(最小值)int min=int.MaxValue;
(最大值)int max=int.MinValue;
Try Catch
Try-catch 解决异常的
try
{
有可能出现错误的代码
}
Catch(Exception ex)
{
Console.WriteLine(ex.Message );
}
Finally
{
无论是否出现异常都会走这里
}
方法(函数)
函数就是将一堆代码进行重用的一种机制
[访问修饰符]static 返回值(没有返回值是void) 方法名([参数列表]) 如果方法前加static叫静态方法
{
方法体
}
调用方法语句:类名.方法名()在本类中调这个方法,可以直接方法名()
方法重载:方法名相同,参数不同(参数个数不同,参数类型也不同) ,和返回值无关