黑马程序员—初学.net面向过程的基础知识汇集

----------------------Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

 

    我学习.net也有一段时间了,在这段时间里一直在毕业论文和看视频中度过,每天早上很早就起来看视频或者写论文,日子过得很充实。在这段时间里看到老师用word写下了.net的一些重要的基础知识,而我在看完视频后要想看这些内容要么就查看笔记,要么就重新翻看视频,但是有的知识点我很容易懂,就没有记下来,而且要是每个地方都记录下来很麻烦,但是后来想到问题的时候想再次确认或者看下的时候就很难找,所以我就把这段时间视频里老师讲到的知识点全部写了下来,以供大家学习参考。以下就是面向过程的基础知识点:

1、在.net这个平台上开始桌面应用程序叫做做winform应用程序开发。

2、解决方案中可以包含多个项目,项目可以包含多个文件,文件中是我们写的程序;

在文件中,命名空间中可以包含类,类中可以包含方法,方法中可以是我们写的程序。

3、重置开发环境:可以使我们的开发工具恢复默认状态;工具—>导入导出

一般窗口不小心关闭了在视图中找。

4、main方法是我们程序的入口方法,当我们执行一个程序时,会首先找到main方法,从main方法的第一句程序开始执行,当main方法执行完成后(即执行到main方法的反大括号),程序就结束了;

所以现在我们初学者写程序,就先写在main方法中。

两个后缀名:.sln解决方案的文件;.csproj项目文件;

5、学习的两句话:Console.Writeline(“你想显示的内容”);

                 Console.ReadKey();程序运行到这里,会停留在这里,等待用户键入一个键,用户键入这个键后程序才继续执行;

6、在C#中的每一句话都必须以分号结束;

设置VS中的字体及大小在工具—>选项;

行号的显示在工具—>选项;

C#中的注释,什么是注释?对我们写的程序写注释,注释是给人看的;

注释的分类有三种:

第一种、单行注释,以//开始到本行结束;

第二种、多行注释,以/*开始 /*结束,之间都为注释的内容;

第三种、文档注释就,用以对类和方法进行注释的,在类或方法的前面连续输入3个/;

7、下面的一对之时可以折叠一段代码:#region和#endregion;

if-else if与switch的比较:

8.net是一种多语言的平台,开发.net可以用多大几十种语言进行开始;

Java是一种单语言平台,一种语言多平台;

MSIL:微软中间语言;

9、用户存储正在运行的程序数据(不准备)RAM:内存有个特点,断电后里面的数据丢失;

变量:变量代表着一块内存空间,我们可以通过变量名称向内存存取数据,有变量就不需要我们记忆复杂的内存地址;

向内存申请一块内存空间的语法:数据类型变量名;

整数在C#中的数据类型叫int;

小数:double;

字符型:char;只能存一个字符,并且存储的这个字符要求用单引号引起来;

字符串:string;就是把0个或者1个或者多个字符连接起来,字符串要求用双引号引起来;

注意:在C#开发环境中直接写一个有小数点的数字,这个数字是double类型的;在一个小数后面加一个m/M,就是告诉编译器这个数字是decimal类型;

10、变量申明的三种方法:

(1)先申明,再赋值;inta;  a=3;

(2)定义变量时直接赋值;   int a=3;

(3)一次申明多个同类型的变量,多个变量名称之间要用逗号分隔,最后以分号结束这句话;

变量一定要先申明,后赋值,最后使用(取值或者调用或写这个变量名)

11、变量的命名规则:

(1)  必须以字母、_或@符号开头;

(2)  后面可以跟任意字母、数字、下划线;

注意:

(1)  你起的变量名不要与C#系统中的关键字重复;

(2)  在C#中,大小写的敏感的;

(3)  同一个变量不允许重复定义(先这么认为,不严谨);

C#变量命名规范——Camel命名法:首个单词的首字母小写,其余单词的首字母大写;

Pascal命名规范:没一个单词第一个字母都大写,如果使用英文单词的缩写,全部用大写;

在方法中定义变量要使用Camel命名法;main方法也是。

12、在一个方法中,一般情况下变量只能定义一次,但是可以多次赋值,再次赋值是,会把变量中原有的值给覆盖掉;、

“+”在C#中的两种意义:

(1)  是数学中的加分运算;

(2)  是连接的意思;

13、在Console.WritLine(“”)中,第一个变量或字符串可以使用占位符;

占位符:由{数字}组成,数字由0开始编号;

Console.WriteLine();有多个参数时,输出都是第一个参数中的内容,从第二个参数开始,都是用来替换第一个参数中的占位符的值,所以从第二个参数开始,要不要输出,就要看第一个参数中有没有相关的占位符;

14、Console.ReadLine();用于让用户从键盘上输入一句话,当程序执行到这句话时就会暂停,然后等待用户从键盘上输入一句,按回车程序将继续执行,如果想得到用户输入的内容,就需要顶一个string类型的变量,写在这句话前面,接收用户输入的内容。

15、接收用户输入的内容,必须定义一个字符串来接收;string input=Console.ReadLine();

转义字符:当我们需要在字符串中输入一些特殊字符的时候使用,比如:半角引号,换行;转义字符是一个字符,它由一个/+一个字母来组成具有特殊意义的一个字符;

常用的转义字符:/n 换行  /b backspace 退格  /t tab键由多个空格组成的一个字符,具有行与行之间的对齐功能  //表示一个/

16、在字符串前面加一个@符号有两种意义:

(1)字符串中如果有/,则不再理解为转义字符;

(2)是字符串可以转行;

17、如果字符串前面加了一个@符号,在字符串上用两个双引号代表一个双引号;

C#中常用五个算术运算符:+、—、*、/、%;

注意:赋值运算符/算术运算符在进行运算时,要参与运算的操作数的类型必须相同,并且其运算结果也要与操作数相同;

他们都是二元运算符,要求:参与的两个操作数的类型必须相同,并且经过运算后的结果也与操作数的类型相同;

在算术表达式中,如果要改变算术的优先级,用小括号,小括号可以无限制的套用,但是一定要成对出现;

18、发生自动转换的条件:

(1)参与运算的两个数据类型必须相兼容

(2)必须一边的数据类型表示的范围小,一边的表示范围大,并且把小的转向大的不丢失精度;

参与运算的操作数与结果类型必须一致,当不一致时,系统自动完成类型转换;转换必须满足:两种类型兼容目标类型大于源类型;

当需要丢失精度转换时,系统是不会帮我们自动转换的需要我们程序员来写代码完成转换,转换语法为:

语法:(数据类型名)待转换的值;

int 变量=Convert.ToInt32(待转义的字符串);表示把待转换字符串转换成int类型后赋值给变量;

19、C#中异常捕获如何完成:

try

{

      有可能出现错误的代码写在这里;

//如果上一行代码出错,则直接跳入catch中;

 

}

catch

{

}

上面的程序如何执行:如果try中的代码没有出错则程序正常运行try中的内容,不会执行catch中的内容;如果try中的代码程序一旦出错,程序立即跳出catch中去执行代码,那么try中出错代码后面的代码不再执行;

20、一些常用的运算符

++自加一有前加和后加;

--自减一有前减和后减

在C#中,一般情况,一元运算符的优先级大于二元运算符;

符合运算符:+=、-=、*=、/=、%=;

能够改变变量中的值的:=、++、--、+=、-=、*=、/=、%=;

C#中有六个关系运算符,用于比较两个事物之间的关系:

>、<、==、!=、>=、<=;

关系表达式:由关系运算符连接起来的式子;

关系表达式的运算结果为bool类型,bool类型只有两个值,一个是true,一个是false,如果关系表达式成立,则这个表达式的值为true,否则为false;

逻辑运算符:&&、||、!

逻辑与运算:表达式1&&表达式2;逻辑与连接的两个表达式,要能够求解成bool类型,一般情况都是关系表达式,整个逻辑与运算的结束也是bool类型;逻辑与只有表达式1和表达式2同时为true的时候其逻辑与结果才为true;

逻辑或运算:同理逻辑与运算,只有当表达式1和表达式2同时为false的时候,其逻辑或结果才为false;

逻辑非:!(取反),用法:!(布尔类型表达式)

21、if结构的基本语法:

if(条件)

语句1;

执行过程:首先判断条件的结果,如果条件为true,则执行语句1,如果条件为false,则跳过语句1,执行后面的语句;

注意:

(1)  if后面括号中的条件,要能计算成一个bool类型的值;

(2)  在默认情况下,if语句只能带一句话,即与if语句有关系的语句只有语句1;

if语句中,如果想让if带多句话,则可以用{}把想让if带的多句括起来组成语句块;

要求:我们在写程序时,哪怕if语句只带一句话,也要把

相同点:都可以实现多分支结构它写在大括号内;

22、if-else结构:

语法:

if(条件)

{语句块1;}

else

{语句块2;}

如果条件为true,则执行if带的语句块1,并且跳过语句块2;

如果条件为false,则跳过if带的语句块1,执行else带的语句块2;

不同点:

23、在if-else if语句中,只有上一个条件不成立时,才会进入下一个if语句并进行if语句后面的条件判断,一旦有一个if后面的条件为true,则执行if带的语句块,语句块执行完成后,程序跳出if-else if结构,如果所有的if都不成立,若在最后有else则执行else所带的语句,否则什么都不执行;

24、switch-case语句:

语法:

switch(表达式)

{

case 值1:语句块1;

break;

case 值2:语句块2;

break;

default:语句块3;

break;

}

执行过程:首先计算表达式,然后根据计算结果与case后面的值,如果有匹配项,则执行匹配项后面的语句,直到break语句跳出switch-case,如果所有的case值都不匹配,那么有default则执行default后面的语句,直到break结束,如果没有default,则跳出switch-case,什么都不执行;

25、while循环语法:

While(条件)//循环条件

{

      要循环执行的N条程序;//循环体

}

执行过程:

(1)  先判断循环条件,如果条件为true,则转向2,如果条件为false则转向3;

(2)  执行循环体,循环体执行完后转向1;

(3)  跳出循环,循环结束;

注意:在循环体中,一定要有那么一句话,改变循环条件中的某个变量的值,使循环条件终有那么一天为false;

Switch:一般只能用于等值比较

if-else if:可以处理范围

While循环的一个特点:先判断,后执行!

26、do-while

语法:

do

{循环体;}

While(条件);

执行过程:

(1)执行循环体,执行完循环体转向2。

(2)判断条件是否成立,如果条件为true,则转向1.如果条件为false,则转向3。

(3)跳出循环。

假如循环条件一开始就不成立,对于while循环,一次都不会执行,对于do-while循环体会执行一次。

所以do-while循环体一般至少会执行一次。

While先判断,后执行。

do-while先执行,后判断。

27、for循环

语法:

for(表达式1;表达式2;表达式3)

{

      循环体;

}

for循环一般用于已知循环次数的循环;

一般情况,表达式1用于定义循环变量和对循环赋初值;

表达式2:循环条件;

表达式3:用于改变循环变量的值;

执行过程:

第1步:计算表达式1,转向第2步;

第2步:计算表达式2(循环条件),如果表达式2的值为true,转向第3步,如果表达式2的值为false,转向第5;

第3步:执行循环体,转向第4步;

第4步:执行表达式3,转向第2步;

第5步:循环结束;

28、break:

(1)可以用于switch-case判断中,用于跳出switch

(2)用在循环中,用于立即跳出(终止)循环。

注意:用于循环中时,跳出的是break所在的循环。

29、continue:

用于循环中程序一旦执行到continue语句,立即结束本次循环(就是不再执行循环体中continue下面的语句),直接进行下一次循环。(do-while/while直接进行下一次循环条件的判断。如果条件成立,则再次进入循环。对于for循环,先执行表达式3,再判断循环条件是否成功!)

30、三元表达式:

表1?表2:表3

执行过程:首先计算表达式1,表达式1应该是一个能够计算成bool类型的值,如果表达式1的值为true,则表达式2的值作为整个表达式的值,如果表达式1的值为false,则表达式3的值作为整个表达式的值。

表达式2和表达式3的类型一定要相同(相容)。

31、常量:

语法:const 类型常量名 = 常量值

在定义时赋值,在其他地方不允许赋值。

32、枚举:

让我们定义一种枚举类型并且在定义这种类型时我们要指定这个类型的所有值。

语法:enum 自己起的类型名称{值1,值2,值3…值n} ;

枚举的定义,一般和类定义在同一个级别。这样在同一个命名空间下的所有的类就都可以使用这个枚举了。

枚举的作用:

(1)  限制用户不能随意赋值,只能在定义枚举时列举的值中选择;

(2)不需要死记每一个值是什么,只需要选择相应的值;

注意:定义枚举时不能是int类型。

枚举类型的变量都能强制转换成int类型。

枚举的值在定义时是有一个默认编号,编号从0开始。

如何把一个字符串转换成枚举类型:

(自枚)(Enum.Parse(typeof(自枚),”待转换的字符串”))

33、为什么要用结构:

(1)比如我们上课讲的为了存储一个人的信息,要申明一组变量,当我们要存储n个人的信息是,就要申明n组变量,麻烦

(2)存储一个人的信息的这几个变量间没有关系,容易记乱。

语法:

访问修饰符的结构名

{

      定义结构成员;

}

定义好一个结构后,就可以直接申明相应的变量了。

申明好变量后,通过变量名.成员名来访问结构的成员。

计算机中最小的单位叫“位”,bit 比特b

就把8个二进制位分成一组,那么8个二进制位叫做字节 Byte B(计算机能够处理的最小单位)

34、N个元素进行交换:

(1)交换n/2次;

(2)在一个循环中,第i个元虚与第length-1-i元素进行交换;

35、冒泡排序:

让数组中的元素两两比较(第i个和第i+1个比较),经过n(i-1)遍两两比较,数组中的元素能按照我们预期的规律排序。

要从大到小排序,我们进行两两比较的时候用<

36、方法:

功能:用来复用代码的,当我们在一个过程中反复的写了同样的代码,在一般情况下,我们可以把需要重复写的代码定义在一个方法中,用的时候只需要调用就行了。

定义方法的与语法:

Public

[访问修饰符][static]返回值类型方法名()

{

      方法体;

}

注意:

(1)方法一般要定义在类中;

(2)如果方法没有返回值,则返回值类型写void;

(3)如果方法没有参数,小括号不能省略;

方法调用:如果是静态方法(由static修饰)则使用类名.方法名();在类中调用本类的方法,可以只写方法名();

return:立即退出本方法;

38、变量的作用域:

在方法中定义的变量成为局部变量,其作用域从定义开始,到其所在的大括号结束为止。

当调用者想得到调用者方法中的变量时,则可以让调用者通过参数的形式给被调用者。 

为什么方法前面能够定义一个变量收到方法的值,是因为在方法中使用了返回值;

只要在方法中返回了值,那么在调用方法中,前面就应该用一个变量来接受方法的返回值;

注意:一个方法只能有一个返回值;

一旦方法有返回值,那么在这个方法体中就必须通过return语句返回一个值,并且这个值要与返回值类型是想通的;

语句:return 返回值;

39、一个变量一旦定义在方法外、类的里面,就叫做类的字段。这个变量就可以被本类的所有方法所访问。但是要注意静态方法只能访问静态字段。

由const修饰的常量不能定义成静态

40、什么叫方法重载:

一般在同一个类中,方法名相同并且方法的参数的个数不同,或者对应位置上的类型不同,才能构成方法的重载。

注意:方法重载和返回值没有关系。

通过参数来返值:

实现步骤:

(1)再方法的参数类型前加out,那么传参数的时候,也必须在number前加out表明这个参数不是传入的,而是用来传出值的;

(2)如果参数是以out形式传入的,那么在传入前可以不赋初值;

(3)在方法中对于由out修饰的参数,必须赋值,并且必须在使用前赋值;

41、out和ref

out用于传出值,在方法中必须对out修饰的传输进行赋值;

ref可以理解为是双向的,即可以传入,又可以传出;

在传参数的过程中,如果参数有out或ref修饰的话,那么改变方法的参数变量的值,调用者方法中变量的值也会相应改变;

当形参是数组的时候,我们传数组名。

 

----------------------Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值