C#学习第二天
1.while循环(先判断再执行):
while(循环条件)
{
循环体;
}
最简单最常用的循环是死循环。
2.do-while循环(先执行再判断):
do
{
循环体;
}(循环条件)
do-while最少也会执行一次
3.VS调试:
1.(Fn+)F11:逐语句调试(单步调试)
2.(Fn+)F10:逐过程调试
3.断点调试:
断点:程序运行到这里便停止了;
在调试时,选择可能出问题的代码部分,在该部分第一行设置断点,然后点击运行程序,那么程序就会停在断点处,然后可以进行单步调试寻找问题;
4.for循环:
for(表达式1;表达式2;表达式3){
循环体;
}
表达式1一般为声明循环变量,记录循环次数;
表达式2一般为循环条件;
表达式3一般为改变循环条件的的代码,使得循环条件终有一天不再成立;
执行过程:表达式1--->表达式2--->循环体--->表达式3;
5.Parse类型转换:
TryParse(bool型函数):比如int.TryParse(字符串类型,out 参数),如果转换成功,则参数变成字符串转换后的数字,并且该语句为true;如果转换失败,则参数没有改变,仍然是之前定义的值,该语句为false;
int.Parse():将字符串转换成整型,失败则抛出异常;
6.三元表达式:表达式1 ?表达式2 : 表达式3
表达式1一般是个关系表达式,如果其为true,那么整个表达式结果就为表达式2的值;如果为false,那么整个表达式的值就是表达式3的值;
7.随机数:
1.创建能够产生随机数的对象: Random r = new Random();
2.让这个对象调用方法来产生随机数: rNumber = r.Next(1,10);
Next(参数1,参数2),产生的数字范围是[参数1,参数2),即左闭右开;这个函数只运行一次,要运行多次可以用循环结构;
8.常量:
const 变量类型 对象名称 = 数值;
变量在定义时就必须赋值;
9.枚举:
【public】 enum 枚举名
{
值1,
值2,
值3,
---------
};
enum :声明枚举的关键字;
枚举名:要符合Pascal命名规范;
枚举类型和int类型可以相互转换,也就是兼容的;
eg:
enum Day {Sun,Mon,Tue,Wed,Thu,Fri,Sat};
int x = (int)Day.Sun;
int y = (int)Day.Fri;
则x = 0, y = 5;
即枚举值在括号中的位置以此是转换为int后的值;
如果将枚举值转换成字符串且枚举值本身就是字符串类型,则直接输出字符串;
10.结构体里面的成员叫字段,变量在运行期间只能存储一个值,而字段在运行期间可以存在多个值;一般在命名时前面加下划线表示字段;
11.数组:
数组类型 [] 数组名 = new 数据类型[数组长度];
数组从0开始到数组长度减一;
如果数组个数很少,也可以通过列举声明数组:数组类型 [] 数组名 = {值1,值2,值3,......},并且数组长度等于值的个数;
12.方法:就是c++中的函数
方法的调用:类名.方法名;
如果方法在和主函数同一个类里面定义,那么在主函数里面调用方法时,可以省略掉类名,直接写方法名就行;
13.在类里面定义静态字段用来模拟全局变量,那么这个静态字段属于的类里面的类或者方法都可以调用这个静态字段;
静态字段只能定义在类里面,不能定义在函数里面;
14.out,ref,params:
out:如果函数要返回多个不同类型的数据,则在形参列表添加out
eg:public static void todo(int [] nums,out int max,out int min,out int sum,out int avg);//求nums数组中的最大最小值以及总和,平均值
ref:ref能够将变量带到方法中进行改变,并且将改变后的值返回给这个变量;也就是说ref解决了“形参问题”;
所以ref变量必须在方法外就进行赋值,而在方法内可以不赋值;
eg:int a = 5; int b = 5;
void Add(int a) void Add(ref int b)
{ {
a += 5; b += 5;
} }
Add(a); Add(ref b);
则最后输出结果分别是a = 5,b = 10;
使用ref参数时,形参和实参前面都要加入ref;
params:将实参列表中与可变参数数组类型一致的元素都当作数组的元素去处理;
params参数数据必须时形参列表中最后一个参数,因为万一它后面出现一个相同类型的另外一个形参,方法是无法判断这个数据归属于哪一个参数;
形参列表中params可变参数只能有一个形参,也就是不能出现2个及以上的可变参数形参;
eg:
-------------------------------------------
int [] a = {1,2,3};
public static void Test(string s,params int [] aa);
Test("张三",a);
-------------------------------------------
public static void Test(string s,params int [] aa);
Tset("张三",1,2,3);
-------------------------------------------
上面两种运行结果相同;
15.方法的重载:方法名称相同,方法参数(参数的个数与类型)不同
16.方法的递归:自己调用自己;
posted on 2022-11-08 22:57 xy-struggle 阅读(15) 评论(0) 编辑 收藏 举报