net笔记文档格式.docx
《net笔记文档格式.docx》由会员分享,可在线阅读,更多相关《net笔记文档格式.docx(30页珍藏版)》请在冰豆网上搜索。
![net笔记文档格式.docx](https://file1.bdocx.com/fileroot1/2022-11/20/3e9f6b0c-1371-4ff6-a51d-4480c7338913/3e9f6b0c-1371-4ff6-a51d-4480c73389131.gif)
7、运行程序的两种方式
1、点击绿色的启动按钮
2、使用快捷键F5
8、生成解决方案
帮助我们排查语法错误。
1、注释符
1)、注销
2)、解释
2、c#的3种注释符
1)、单行注释//
2)、多行注释/*要注释的内容*/
3)、文档注释///多用来解释类或者方法
3、变量
用来在计算机当中存储数据。
孙全开房
火车26小时去旅馆睡觉
孙全一个人单人房308
孙全andgirl双人间一张床521
孙全andboy双人间两张床520
存储整数100
数据类型:
整数
在内存中开辟的空间应该是整数类型int
存储变量的语法:
变量类型变量名;
变量名=值;
"
="
号:
在这并不表示等于的意思,而是赋值的意思,表示把等号右边的值赋值给等号左边的变量。
声明并且给变量赋值的简写形式:
变量类型变量名=值;
4、数据类型
1)、整数类型:
int只能存储整数,不能存储小数。
2)、小数类型:
double既能存储整数,也能存储小数,小数点后面的位数15~16位。
3)、金钱类型:
decimal:
用来村粗金钱,值后面需要加上一个m.
4)、字符串类型:
string,用来存储多个文本,也可以存储空,字符串类型的值需要被双引号引来,
这个双引号必须是英文半角状态下的双引号
5)、字符类型:
char,用来存储单个字符,最多、最少只能有一个字符,不能存储空。
字符类型的值需要用单引号因起来。
英文半角状态下的单引号。
5、波浪线
1)、如果你的代码中出现了红色的波浪线,意味着你的代码中出现了
语法错误。
2)、如果你的代码中出现了绿色的波浪线,说明你的代码语法并没有错误,
只不过提示你有可能会出现错误,但是不一定会出现错误。
警告线
6、变量的使用规则
如果你要是用变量的话,应该要先声明再赋值再使用。
7、命名规则:
****首先要保证的就是这个变量的名字要有意义。
1现阶段给变量起名字的时候都以字母开头
2后面可以跟任意“字母”、数字、下划线.
注意:
1)你起的变量名不要与c#系统中的关键字重复.
2)在c#中,大小写是敏感的.HTML
3)同一个变量名不允许重复定义(先这么认为,不严谨)
给变量起名字的时候要满足两个命名规范:
1、Camel骆驼命名规范。
要求变量名首单词的首字母要小写,其余每个单词的首字母要大写。
多用于给变量命名。
2、Pascal命名规范:
要求每个单词的首字母都要大写,其余字母小写。
多用于给类或者方法命名。
HighSchoolStudent
highSchoolStudent
8、赋值运算符
=:
表示赋值的意思,表示把等号右边的值,赋值给等号左边的变量。
由等号连接的表达式称之为赋值表达式。
每个表达式我们都可以求解除一个定值,对于赋值表达式而言,等号左边的变量的值,
就是整个赋值表达式的值。
intnumber=10;
9、+号的作用
1)、连接:
当+号两边有一边是字符串的时候,+号就起到连接的作用。
2)、相加:
两边是数字的时候
10、占位符
使用方法:
先挖个坑,再填个坑。
使用占位符需要注意的地方:
1、你挖了几个坑,就应该填几个坑,如果你多填了,没效果。
如果你少填了,抛异常。
2、输出顺序:
按照挖坑的顺序输出。
11、异常
异常是指:
语法上并没有任何错误,只不过在程序运行的期间,由于某些原因出现了问题,
使程序不能再正常的运行。
12、转义符
转义符指的就是一个'
\'
+一个特殊的字符,组成了一个具有特殊意义的字符。
\n:
表示换行
\"
:
表示一个英文半角的双引号
\t:
表示一个tab键的空格
\b:
表示一个退格键,放到字符串的两边没有效果。
\r\n:
windows操作系统不认识\n,只认识\r\n
\\:
表示一个\
@符号
1、取消\在字符串中的转义作用,使其单纯的表示为一个'
2、将字符串按照编辑的原格式输出
13、算数运算符
+
-
*
/
%
14、类型转换
隐式类型转换:
我们要求等号两遍参与运算的操作数的类型必须一致,如果不一致,满足下列条件会发生
自动类型转换,或者称之为隐式类型转换。
两种类型兼容
例如:
int和double兼容(都是数字类型)
目标类型大于源类型
double>
int小的转大的
显示类型转换:
1、两种类型相兼容int--double
2、大的转成小的double----int
语法:
(待转换的类型)要转换的值;
总结:
自动类型转换:
int---->
double
double--->
int
20平
20平45平
1、类型如果相兼容的两个变量,可以使用自动类型转换或者强制类型转换,
但是,如果两个类型的变量不兼容,比如string与int或者string与double,
这个时候我们可以使用一个叫做Convert的转换工厂进行转换。
注意:
使用Convert进行类型转换,也需要满足一个条件:
面儿上必须要过的去。
2、算数运算符
++:
分为前++和后++,不管是前++还是后++,最终的结果都是给这个变量加一。
区别表现表达式当中,如果是前++,则先给这个变量自身加一,然后带着这个加一后的值去参与运算。
如果是后++,则先拿原值参与运算,运算完成后,再讲这个变量自身加一。
--:
同上。
3、
对于向加加或者减减这样只需要一个操作数就能完成的运算,我们称之为一元运算符。
+-*/%对于这些需要两个或以上才能完成运算的操作符,我们称之为二元运算符。
一元运算符的优先级要高于而元运算符。
如果在一个表达式当中,既有一元运算符,又有二元运算符,我们首先计算一元运算符。
intresult=10+++number;
4、关系运算符
>
<
=
==
!
关系运算符是用来描述两个事物之间的关系
由关系运算符连接的表达式称之为关系表达式。
5、bool类型
在c#中我们用bool类型来描述对或者错。
bool类型的值只有两个一个true一个false
6、逻辑运算符
&
逻辑与
||逻辑或
逻辑非
又逻辑运算符连接的表达式叫做逻辑表达式
逻辑运算符两边放的一般都是关系表达式或者bool类型的值。
5>
3&
true
3>
5||false
!
表达式
逻辑表达式的结果同样也是bool类型
7、复合赋值运算符
+=:
number+=20;
number=number+20;
-=
number-=5;
number=number-5;
*=
number*=5;
number=number*5;
/=
%=
中级程序员--2年---高级程序员---->
小组组长--->
项目经理
业务经理
产品经理
高级程序员
不明觉厉
软件开发工程师
顺序结构:
程序从Main函数进入,从上到下一行一行的执行,不会落下任何一行。
分支结构:
ifif-else
选择结构:
ifelse-ifswitch-case
循环结构:
whiledo-whileforforeach
8、
if语句:
if(判断条件)
{
要执行的代码;
}
判断条件:
一般为关系表达式或者bool类型的值。
执行过程:
程序运行到if处,首先判断if所带的小括号中的判断条件,
如果条件成立,也就是返回true,则执行if所带的大括号中的代码,
如果判断条件不成立,也就是返回一个false。
则跳过if结构,继续向下执行。
if结构的特点:
先判断,再执行,有可能一行代码都不执行
用于一种情况的判断。
9、if-else
执行的代码;
else
执行的代码
程序执行到if处,首先判断if所带的小括号中的判断条件是否成立,
如果成立,也就是返回一个true,则执行if所带的大括号中的代码,
执行完成后,跳出if-else结构。
如果if所带的小括号中的判断条件不成立,也就是返回一个false,
则跳过if语句,执行else所带的大括号中的语句,执行完成后,跳出if-else结构。
if-else特点:
先判断,再执行,最少都要执行一条代码。
用于两种情况的判断
else永远跟离它最近的那个if配对
10、ifelse-if
作用:
用来处理多条件的区间性的判断。
elseif(判断条件)
........
执行过程;
程序首先判断第一个if所带的小括号中的判断条件,如果条件成立,也就是返回一个true,
则执行该if所带的大括号中的代码,执行完成后,立即跳出ifelse-if结构。
如果第一个if所带的判断条件不成立,也就是返回一个false,则继续向下进行判断,依次的判断每一个if所带
的判断条件,如果成立,就执行该if所带的大括号中的代码,如果不成立,则继续向下判断,
如果每个if所带的判断条件都不成立,就看当前这个ifelse-if结构中是否存在else。
如果有else的话,则执行else中所带的代码,如果没有else,则整个if-elseif神马都不做。
else可以省略。
1、异常捕获
我们在程序中经常会出现各种各样的异常,你如果想要你的程序变得坚强一些。
在你的代码中应该经常性的使用try-catch来进行异常捕获。
哪行代码有可能出现异常,你就踹它一脚。
try
可能会出现异常的代码;
....
...
//try和catch之间不能有其他的代码
catch
出现异常后要执行的代码;
执行过程:
如果try中的代码没有出现异常,那么catch中的代码不会执行。
如果try中的代码出现了异常,那怕这行出现异常的代码后面还有一百行都不会执行了,
而是直接跳到catch中执行代码
2、变量的作用域
变量的作用域就是你能够使用到这个变量的范围。
变量的作用域一般从声明它的那个括号开始到那个括号所对应的结束的括号结束。
在这个范围内,我们可以访问并使用变量。
超出这个范围就访问不到了
3、switch-case
用来处理多条件的定值的判断。
switch(变量或者表达式的值)
case值1:
要执行的代码;
break;
case值2:
case值3:
..........
default:
程序执行到switch处,首先将括号中变量或者表达式的值计算出来,
然后拿着这个值依次跟每个case后面所带的值进行匹配,一旦匹配成功,则执行
该case所带的代码,执行完成后,遇到break。
跳出switch-case结构。
如果,跟每个case所带的值都不匹配。
就看当前这个switch-case结构中是否存在
default,如果有default,则执行default中的语句,如果没有default,则该switch-case结构
什么都不做。
4、循环结构
while循环:
while(循环条件)
循环体;
程序运行到while处,首先判断while所带的小括号内的循环条件是否成立,
如果成立的话,也就是返回一个true,则执行循环体,执行完一遍循环体后,再次回到
循环条件进行判断,如果依然成立,则继续执行循环体,如果不成立,则跳出while循环。
在while循环当中,一般总会有那么一行代码,能够改变循环条件,使之终有一天不再成立,
如果没有那么一行代码能够改变循环条件,也就是循环条件永远都成立,我们称之这种循环
叫做死循环。
最简单的最常用的死循环:
while(true)
特点:
先判断,再执行,有可能一遍循环都不执行。
5、break
1)、可以跳出switch-case结构。
2)、可以跳出当前循环。
break一般不单独的使用,而是跟着if判断一起使用,表示,当满足某些条件的时候,就不再循环了。
6、do-while循环。
do
}while(循环条件);
程序首先会执行do中的循环体,执行完成后,去判断do-while循环的循环条件,
如果成立,则继续执行do中的循环体,如果不成立,则跳出do-while循环。
先循环,再判断,最少执行一遍循环体。
1、*程序调试
1)、写完一段程序后,想看一下这段程序的执行过程。
2)、当你写完这段程序后,发现,程序并没有按照你想象的样子去执行。
调试方法:
1)、F11逐语句调试(单步调试)
2)、F10逐过程调试
3)、断点调试
2、for循环
语法:
for(表达式1;
表达式2;
表达式3)
表达式1一般为声明循环变量,记录循环的次数(inti=0;
)
表达式2一般为循环条件(i<
10)
表达式3一般为改变循环条件的代码,使循环条件终有一天不再成立(i++)。
程序首先执行表达式1,声明了一个循环变量用来记录循环的次数,
然后执行表达式2,判断循环条件是否成立,如果表达式2返回的结果为true,
则执行循环体。
当执行完循环体后,执行表达式3,然后执行表达式2继续判断循环条件是否成立,
如果成立则继续执行循环体,如果不成立,则跳出for循环。
3、int.TryParse
int.parse
尝试着将一个字符串转换成int类型。
4、三元表达式
表达式1?
表达式2:
表达式3;
表达式1一般为一个关系表达式。
如果表达式1的值为true,那么表达式2的值就是整个三元表达式的值。
如果表达式1的值为false,那么表达式3的值就是整个三元表达式的值。
表达式2的结果类型必须跟表达式3的结果类型一致,并且也要跟整个三元表达式的结果类型一致。
第六趟比较:
3210456789交换了4次
第七趟比较:
2103456789交换了3次
第八趟比较:
1023456789交换了2次
第九趟比较:
0123456789交换了1次
for(inti=0;
i<
number.Length-1;
i++)
for(intj=0;
j<
nums.Length-1-i;
j++)
{
if(nums[j]>
nums[j+1])
{
inttemp=nums[j];
nums[j]=nums[j+1];
nums[j+1]=temp;
}
}
11、方法
函数就是将一堆代码进行重用的一种机制。
函数的语法:
[public]static返回值类型方法名([参数列表])
方法体;
public:
访问修饰符,公开的,公共的,哪都可以访问。
static:
静态的
返回值类型:
如果不需要写返回值,写void
方法名:
Pascal每个单词的首字母都大些。
其余字母小写
参数列表:
完成这个方法所必须要提供给这个方法的条件。
如果没有参数,小括号也不能省略。
方法写好后,如果想要被执行,必须要在Main()函数中调用。
方法的调用语法:
类名.方法名([参数]);
***在某些情况下,类名是可以省略的,如果你写的方法跟Main()函数同在一个类中,这个时候,
类名可以省略。
12、return
1、在方法中返回要返回的值。
2、立即结束本次方法。
1、我们在Main()函数中,调用Test()函数,我们管Main()函数称之为调用者,
管Test()函数称之为被调用者。
如果被调用者想要得到调用者的值:
1)、传递参数。
2)、使用静态字段来模拟全局变量。
如果调用者想要得到被调用者的值:
1)、返回值
2、
不管是实参还是形参,都是在内存中开辟了空间的。
3、方法的功能一定要单一。
GetMax(intn1,intn2)
方法中最忌讳的就是出现提示用户输入的字眼。
4、out、ref、params
1)、out参数。
如果你在一个方法中,返回多个相同类型的值的时候,可以考虑返回一个数组。
但是,如果返回多个不同类型的值的时候,返回数组就不行了,那么这个时候,
我们可以考虑使用out参数。
out参数就侧重于在一个方法中可以返回多个不同类型的值。
2)、ref参数
能够将一个变量带入一个方法中进行改变,改变完成后,再讲改变后的值带出方法。
ref参数要求在方法外必须为其赋值,而方法内可以不赋值。
3)、params可变参数
将实参列表中跟可变参数数组类型一致的元素都当做数组的元素去处理。
params可变参数必须是形参列表中的最后一个元素。
5、方法的重载
概念:
方法的重载指的就是方法的名称相同给,但是参数不同。
参数不同,分为两种情况
1)、如果参数的个数相同,那么参数的类型就不能相同。
2)、如果参数的类型相同,那么参数的个数就不能相同。
***方法的重载跟返回值没有关系。
6、方法的递归
方法自己调用自己。
找出一个文件夹中所有的文件。
提示用户输入两个数字计算这两个数字之间所有整数的和
1、用户只能输入数字
2、计算两个数字之间和
3、要求第一个数字必须比第二个数字小就重新输入
79、用方法来实现:
有一个字符串数组:
{"
马龙"
"
迈克尔乔丹"
雷吉米勒"
蒂姆邓肯"
科比布莱恩特"
},请输出最长的字符串。
80、用方法来实现:
请计算出一个整型数组的平均值。
81、写一个方法,用来判断用户输入的数字是不是质数再写一个方法要求用户只能输入数字输入有误就一直让用户输入数字
95、接受输入后判断其等级并显示出来。
判断依据如下:
等级={优(90~100分);
良(80~89分)
//;
中(60~69分);
差(0~59分);
97、请将字符串数组{"
中国"
美国"
巴西"
澳大利亚"
加拿大"
}中的内容反转
98写一个方法计算圆的面积和周长面积是pI*R*R周长是2*Pi*r
100、计算任意多个数间的最大值(提示:
params)。
101、请通过冒泡排序法对整数数组{1,3,5,7,90,2,4,6,8,10}实现升序排序。
用方法来实现:
{1,3,5,7,93,33,4,4,6,8,10}。
要求:
计算结果如果有小数,则显示小数点后两位(四舍五入)。
102将一个字符串数组输出为|分割的形式,比如“梅西|卡卡|郑大世”(用方法来实现此功能)
1、画游戏头
2、初始化地图(加载地图所需要的资源)
将整数数组中的数字编程控制台中显示的特殊字符串的这个过程就是初始化地图
3、画地图
4、玩游戏
游戏规则:
如果玩家A踩到了玩家B玩家B退6格
踩到了地雷退6格
踩到了时空隧道进10格
踩到了幸运轮盘1交换位置2轰炸对方使对方退6格
踩到了暂停暂停一回合
踩到了方块神马都不干
Map[50]
if(map[40]==1)
Console.WriteLine("
◎"
//初始化地图Map[6]=1
//我用0表示普通,显示给用户就是□
//....1...幸运轮盘,显示组用户就◎
//....2...地雷,显示给用户就是☆
//....3...暂停,显示给用户就是▲
//....4...时空隧道,显示组用户就卐
int[]luckyturn={6,23,40,55,69,83};
//幸运轮盘◎
int[]landMine={5,13,17,33,38,50,64,80,94};
//地雷☆
int[]pause={9,27,60,93};
//暂停▲
int[]timeTunnel={20,25,45,63,72,88,90};
//时空隧道卐
for(inti=0;
luckyturn.Length;
{
intn=luckyturn[i];
Map[n]=1;
}
landMine.Length;
intn=la