1. 环境搭建1.1C#简介C#(读作“C Sharp”)是一种由微软开发的面向对象的、类型安全的编程语言,作为.NET框架的一部分,它旨在提供一种简洁、现代、面向对象的编程范式。自从2002年首次发布以来,C#经历了多次版本迭代,不断增强其表达力和运行效率。目前广泛应用于企业应用开发、游戏开发(尤其是通过Unity引擎)、Windows应用程序、网络服务和云应用等多种开发场景1.2 Visual Studio 2022下载官网下载: https://visualstudio.microsoft.com/zh-hans/vs/1.3 第一个C#程序–HelloWorldstaticvoidMain(string[]args){Console.WriteLine("我的第一个C#程序:HelloWorld!");}2. C#基本数据类型与变量2.1 自定义变量命名及输入输出语句//变量名, 首字母小写, 小驼峰命名法//类名,方法名, 首字母大写, 大驼峰命名法stringname="李四";intage=18;boolisMale;//是否是男生isMale=true;str="hello";Console.Write("你好:\n在吗?");//输出之后不换行, 必须小括号传值//转义符: \n 换行符 \t: 制表符Console.WriteLine();//输出后换行,快捷键cw+tab//输入: Console.ReadLine() 读取一行字符串, 返回值是string类型Console.WriteLine("请输入您的姓名:");name=Console.ReadLine();//阻塞方法//使用+进行拼接Console.WriteLine("姓名:"+name+",年龄:"+age+",是否是男生:"+isMale);//使用$插值语法 $"字符串...{变量名},....{变量名2}"Console.WriteLine($"姓名:{name},年龄:{age},是否是男生:{isMale}");2.2 数据类型转换string 转换为其他值类型(值类型都一个Parse()方法, 把字符串转换为指定类型)intmyAge=int.Parse(Console.ReadLine());//把string转换为intdecimalbalance=decimal.Parse(Console.ReadLine());//把string转换为decimaldoublescore=double.Parse(Console.ReadLine());//把string转换为double其他类型转换为string类型: ToString()doublescore=30;strings=score.ToString();//将double转换为string2.3 运算符算数运算符:+,-,,/,%,++,–赋值运算符:=,+=,-=,=,/=,%=比较运算符:>,<,==,>=,<=,!=逻辑运算符:&,|,!,^,&&,||运算符优先级:算术运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符3. if选择判断结构的基本语法if(条件表达式){//条件表达式的结果为bool类型, 比较表达式, 逻辑表达式//满足条件执行的代码}//if-else (否则) 二选一if(条件表达式)//条件表达式的结果为bool类型, 比较表达式, 逻辑表达式{//满足条件执行的代码}else{//不满足条件执行的代码}// 多分支if n选1if(条件表达式1)//条件表达式的结果为bool类型, 比较表达式, 逻辑表达式{//满足条件执行的代码}elseif(条件表达式2){}...else{//不满足条件执行的代码}//嵌套if//if/else 内部,嵌套if结构 , 条件是并且关系if(条件1){if(条件2){//满足: 条件1为true,并且条件2为true}else{////满足: 条件1为true,并且条件2为false}}案例:任意给出一个整数,请用程序实现判断该整数是奇数还是偶数,并在控制台输出结果staticvoidMain(string[]args){Console.WriteLine("请输入数字:");intnum=int.Parse(Console.ReadLine());if(num%2==0){Console.WriteLine(num+"是偶数");}else{Console.WriteLine(num+"是奇数");}}4. switch 等值判断switch写的代码,都可以使用if替换switch(表达式){case值1://执行代码break;//退出switchcase值2://执行代码break;...default://执行代码break;}案例:键盘输入星期数,显示今天的减肥活动周一: 跑步周二: 游泳周三: 慢走周四: 动感单车周五: 拳击周六: 周日: 好好休息staticvoidMain(string[]args){Console.WriteLine("请输入周几:");intweek=int.Parse(Console.ReadLine());switch(week){case1:Console.WriteLine("跑步");break;case2:Console.WriteLine("游泳");break;case3:Console.WriteLine("慢走");break;case4:Console.WriteLine("骑单车");break;case5:Console.WriteLine("拳击");break;default:Console.WriteLine("躺平休息");break;}}5. 循环结构5.1 for循环特征: 先判断,后循环, 循环次数确定for(表达式1;表达式2;表达式3){//循环体}执行顺序: 表达式1 --> 表达式2(true)->循环体–>表达式3–>表达式2(false)–>退出循环5.2 while循环特征: 先判断,后循环, for写的都可以使用while替换,初始化循环变量;while(循环条件){循环体;修改循环变量;//重点}5.3 do-while循环特征: 先循环,后判断初始化循环变量do{循环体;修改循环变量;//重点}while(循环条件);5.4 循环控制关键字break: 在循环或者是switch使用, 退出循环continue: 只能在循环内部使用, 跳过本次循环,直接进入下次循环6. 数组6.1 声明数据类型[] 数组名;6.2 开辟空间: 通过new关键字, 在堆开辟空间数组名 = new 数据类型[长度];6.3 给数组的位置添加元素, 通过下标操作数组名[下标] = 值;6.4 动态获取数组的长度: 数组名.Length;int[] arr;arr = new int[5];int n = arr.Length;6.5 fori循环简化: foreach循环foreach(数据类型 变量 in 数组名){}foreach循环写的都可以使用fori替换foreach只能操作元素, 无下标操作, fori循环既可以操作元素, 又可以操作下标6.6 声明与开辟合并一行数据类型[] 数组名 = new 数据类型[长度];6.7 数组的静态初始化: 创建数组时,添加元素数据类型[] 数组名 = new 数据类型[]{值1,值2,…};简化:数据类型[] 数组名 = {值1,值2,…};7. List泛型列表7.1 创建 ListList<int>numbers=newList<int>();// 空列表List<string>names=newList<string>(){"Alice","Bob"};// 初始化列表List<double>values=newList<double>(10);// 指定初始容量7.2 添加元素numbers.Add(1);// 添加单个元素numbers.AddRange(newint[]{2,3,4});// 添加多个元素7.3 访问元素intfirst=numbers[0];// 通过索引访问numbers[1]=10;// 通过索引修改7.4 常用方法intcount=numbers.Count;// 获取元素数量boolcontains=numbers.Contains(3);// 检查是否包含intindex=numbers.IndexOf(3);// 查找索引numbers.Insert(1,5);// 在指定位置插入numbers.Remove(3);// 移除指定元素numbers.RemoveAt(0);// 移除指定位置的元素numbers.Clear();// 清空列表7.5 遍历列表// foreach 循环foreach(intnuminnumbers){Console.WriteLine(num);}// for 循环for(inti=0;i<numbers.Count;i++){Console.WriteLine(numbers[i]);}8. 字符串string字符串的相等为值比较,只要字符序列相同即可。stringobj="abc";stringstr="a";stringobj2=str+"bc";Console.WriteLine(obj==obj2);//true使用Length属性可以获取字符串的长度:stringtext="Hello";Console.WriteLine(text.Length);// 输出: 5[] 运算符可用于只读访问字符串的个别字符。 有效索引于 0 开始,且必须小于字符串的长度:stringstr="test";charx=str[2];// x = 's';9. 类与对象定义类的语法:访问修饰符 class 类名{//定义字段部分数据类型 字段1;数据类型 字段2;…//定义属性部分数据类型 属性1;数据类型 属性2;…//定义方法部分方法1方法2…}案例:编写一个学生类,包含编号,姓名,性别,年龄的字段,以及对应的属性,还有一个学习方法classStudent{//字段intid;stringname;charsex='男';intage;//属性publicintId{get;set;}publicstringName{get{returnname;}set{name=value;}}publiccharSex{get{returnsex;}set{sex=value;}}publicintAge{get{returnage;}set{age=value;}}//方法publicvoidStudy(){Console.WriteLine(name+"正在学习");}结语此文档仅供参考,可能存在错误和不足。
1. 环境搭建1.1C#简介C#(读作“C Sharp”)是一种由微软开发的面向对象的、类型安全的编程语言,作为.NET框架的一部分,它旨在提供一种简洁、现代、面向对象的编程范式。自从2002年首次发布以来,C#经历了多次版本迭代,不断增强其表达力和运行效率。目前广泛应用于企业应用开发、游戏开发(尤其是通过Unity引擎)、Windows应用程序、网络服务和云应用等多种开发场景1.2 Visual Studio 2022下载官网下载: https://visualstudio.microsoft.com/zh-hans/vs/1.3 第一个C#程序–HelloWorldstaticvoidMain(string[]args){Console.WriteLine("我的第一个C#程序:HelloWorld!");}2. C#基本数据类型与变量2.1 自定义变量命名及输入输出语句//变量名, 首字母小写, 小驼峰命名法//类名,方法名, 首字母大写, 大驼峰命名法stringname="李四";intage=18;boolisMale;//是否是男生isMale=true;str="hello";Console.Write("你好:\n在吗?");//输出之后不换行, 必须小括号传值//转义符: \n 换行符 \t: 制表符Console.WriteLine();//输出后换行,快捷键cw+tab//输入: Console.ReadLine() 读取一行字符串, 返回值是string类型Console.WriteLine("请输入您的姓名:");name=Console.ReadLine();//阻塞方法//使用+进行拼接Console.WriteLine("姓名:"+name+",年龄:"+age+",是否是男生:"+isMale);//使用$插值语法 $"字符串...{变量名},....{变量名2}"Console.WriteLine($"姓名:{name},年龄:{age},是否是男生:{isMale}");2.2 数据类型转换string 转换为其他值类型(值类型都一个Parse()方法, 把字符串转换为指定类型)intmyAge=int.Parse(Console.ReadLine());//把string转换为intdecimalbalance=decimal.Parse(Console.ReadLine());//把string转换为decimaldoublescore=double.Parse(Console.ReadLine());//把string转换为double其他类型转换为string类型: ToString()doublescore=30;strings=score.ToString();//将double转换为string2.3 运算符算数运算符:+,-,,/,%,++,–赋值运算符:=,+=,-=,=,/=,%=比较运算符:>,<,==,>=,<=,!=逻辑运算符:&,|,!,^,&&,||运算符优先级:算术运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符3. if选择判断结构的基本语法if(条件表达式){//条件表达式的结果为bool类型, 比较表达式, 逻辑表达式//满足条件执行的代码}//if-else (否则) 二选一if(条件表达式)//条件表达式的结果为bool类型, 比较表达式, 逻辑表达式{//满足条件执行的代码}else{//不满足条件执行的代码}// 多分支if n选1if(条件表达式1)//条件表达式的结果为bool类型, 比较表达式, 逻辑表达式{//满足条件执行的代码}elseif(条件表达式2){}...else{//不满足条件执行的代码}//嵌套if//if/else 内部,嵌套if结构 , 条件是并且关系if(条件1){if(条件2){//满足: 条件1为true,并且条件2为true}else{////满足: 条件1为true,并且条件2为false}}案例:任意给出一个整数,请用程序实现判断该整数是奇数还是偶数,并在控制台输出结果staticvoidMain(string[]args){Console.WriteLine("请输入数字:");intnum=int.Parse(Console.ReadLine());if(num%2==0){Console.WriteLine(num+"是偶数");}else{Console.WriteLine(num+"是奇数");}}4. switch 等值判断switch写的代码,都可以使用if替换switch(表达式){case值1://执行代码break;//退出switchcase值2://执行代码break;...default://执行代码break;}案例:键盘输入星期数,显示今天的减肥活动周一: 跑步周二: 游泳周三: 慢走周四: 动感单车周五: 拳击周六: 周日: 好好休息staticvoidMain(string[]args){Console.WriteLine("请输入周几:");intweek=int.Parse(Console.ReadLine());switch(week){case1:Console.WriteLine("跑步");break;case2:Console.WriteLine("游泳");break;case3:Console.WriteLine("慢走");break;case4:Console.WriteLine("骑单车");break;case5:Console.WriteLine("拳击");break;default:Console.WriteLine("躺平休息");break;}}5. 循环结构5.1 for循环特征: 先判断,后循环, 循环次数确定for(表达式1;表达式2;表达式3){//循环体}执行顺序: 表达式1 --> 表达式2(true)->循环体–>表达式3–>表达式2(false)–>退出循环5.2 while循环特征: 先判断,后循环, for写的都可以使用while替换,初始化循环变量;while(循环条件){循环体;修改循环变量;//重点}5.3 do-while循环特征: 先循环,后判断初始化循环变量do{循环体;修改循环变量;//重点}while(循环条件);5.4 循环控制关键字break: 在循环或者是switch使用, 退出循环continue: 只能在循环内部使用, 跳过本次循环,直接进入下次循环6. 数组6.1 声明数据类型[] 数组名;6.2 开辟空间: 通过new关键字, 在堆开辟空间数组名 = new 数据类型[长度];6.3 给数组的位置添加元素, 通过下标操作数组名[下标] = 值;6.4 动态获取数组的长度: 数组名.Length;int[] arr;arr = new int[5];int n = arr.Length;6.5 fori循环简化: foreach循环foreach(数据类型 变量 in 数组名){}foreach循环写的都可以使用fori替换foreach只能操作元素, 无下标操作, fori循环既可以操作元素, 又可以操作下标6.6 声明与开辟合并一行数据类型[] 数组名 = new 数据类型[长度];6.7 数组的静态初始化: 创建数组时,添加元素数据类型[] 数组名 = new 数据类型[]{值1,值2,…};简化:数据类型[] 数组名 = {值1,值2,…};7. List泛型列表7.1 创建 ListList<int>numbers=newList<int>();// 空列表List<string>names=newList<string>(){"Alice","Bob"};// 初始化列表List<double>values=newList<double>(10);// 指定初始容量7.2 添加元素numbers.Add(1);// 添加单个元素numbers.AddRange(newint[]{2,3,4});// 添加多个元素7.3 访问元素intfirst=numbers[0];// 通过索引访问numbers[1]=10;// 通过索引修改7.4 常用方法intcount=numbers.Count;// 获取元素数量boolcontains=numbers.Contains(3);// 检查是否包含intindex=numbers.IndexOf(3);// 查找索引numbers.Insert(1,5);// 在指定位置插入numbers.Remove(3);// 移除指定元素numbers.RemoveAt(0);// 移除指定位置的元素numbers.Clear();// 清空列表7.5 遍历列表// foreach 循环foreach(intnuminnumbers){Console.WriteLine(num);}// for 循环for(inti=0;i<numbers.Count;i++){Console.WriteLine(numbers[i]);}8. 字符串string字符串的相等为值比较,只要字符序列相同即可。stringobj="abc";stringstr="a";stringobj2=str+"bc";Console.WriteLine(obj==obj2);//true使用Length属性可以获取字符串的长度:stringtext="Hello";Console.WriteLine(text.Length);// 输出: 5[] 运算符可用于只读访问字符串的个别字符。 有效索引于 0 开始,且必须小于字符串的长度:stringstr="test";charx=str[2];// x = 's';9. 类与对象定义类的语法:访问修饰符 class 类名{//定义字段部分数据类型 字段1;数据类型 字段2;…//定义属性部分数据类型 属性1;数据类型 属性2;…//定义方法部分方法1方法2…}案例:编写一个学生类,包含编号,姓名,性别,年龄的字段,以及对应的属性,还有一个学习方法classStudent{//字段intid;stringname;charsex='男';intage;//属性publicintId{get;set;}publicstringName{get{returnname;}set{name=value;}}publiccharSex{get{returnsex;}set{sex=value;}}publicintAge{get{returnage;}set{age=value;}}//方法publicvoidStudy(){Console.WriteLine(name+"正在学习");}结语此文档仅供参考,可能存在错误和不足。