黑马程序员_C#基础回顾

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

C#是强类型语言,在C#程序中每个变量和对象都必须声明类型。从数据存储的角度来分,可分为值类型和引用类型。值类型用于存储数据的值,引用类型用于存储对实际数据的引用。

值类型分为:

1.简单类型:表示一个有唯一取值的数据类型,包括整型、浮点型、小数型、布尔型等。

2.枚举型:枚举型实质就是使用符号来表示的一组相互关联的数据。

注意:(1)枚举元素的数据值是确定的,一旦声明就不能在程序的运行过程中更改。

         (2)枚举元素的个数是有限的,同样,一旦声明就不能在程序运行过程中更改。

         (3)默认情况下,枚举元素的值是一个整数,第1个枚举数的值为0,后面每个枚举数依次递增1.

         (4)如果需要改变默认的规则,则重写枚举元素的值即可,例如:

                 Enum myenum{a=101,b,c,d=201,e,f};

                 在此枚举数中,a为101,b为102,c为103,d为201,e为202,f为203。

3.结构型:包括数据成员和方法成员。数据成员表示结构的数据项,方法成员表示对数据项的操作。

引用类型分为:

1.类:程序设计中,类是现实世界中同类事物的进一步抽象,是最基本的编程单位,由若干个数据成员、数据方法等组成。

注意:结构型和类的区别:(1)结构型是值类型,类是引用型,因此使用结构型定义变量可以不使用new运算符来初始化,而使用类定义的变量必须使用new运算符来初始化(2)结构型可以实现接口,但无法继承另一个结构型,因此不需要使用protected来保护结构型的成员,而类也可以实现接口,允许继承另一个类,为此可以使用protected保护类成员。

2.接口:接口与类的关系是,接口负责制定类的标准行为,而类负责实现这些行为。

3.委托:是C#提供的一种以托管机制调用方法的特殊数据类型。

4.数组:数组是一种由若干个变量组成的集合,数组中包含的变量称为数组的元素,它们具有相同的类型。数组元素可以是任何类型,包括数组类型。数组的声明:

数组类型[] 数组名 = new 数组类型[数组长度]

5.字符串。

注意:值类型变量一经定义系统就会为其分配内存空间并自动初始化,而引用型变量必须使用运算符new和构造函数创建,这样才会获得内存空间和被初始化。

装箱和拆箱

装箱:是把一个值类型的数据转换为一个对象类型的数据。装箱过程是隐式转换过程,由系统自动完成,一般在赋值运算前完成。

拆箱:是把一个对象类型数据转换为一个值类型数据,拆箱过程必须是显式转换过程。拆箱时先检查对象所引用的数据的类型,确保拆箱前后的数据类型相同,再复制出一个值类型数据。

注意:装箱操作与拆箱操作必须遵循类型兼容原则,否则转换会失败,系统抛出System.InvalidCastException异常。

常量和变量

常量:程序运行过程中,其值始终不变的量。包括整型常量、浮点型常量、小数型常量、字符型常量、布尔值常量和字符串型常量。

变量:程序运行过程中,其值可以被改变的量。变量具有名字和取值,程序运行过程中,通过变量名来引用变量的值。

数据类型转换

1.隐式转换:有C#语言编译器自动完成。

2.显示转换:为了避免隐式转换可能带来的错误,需要使用强制转换来执行显示转换。

注意:无论是强制转换还是隐式转换,都只是为了本次运算的需要对变量的数据长度进行临时性转换,而不改变该变量已经定义的类型。

运算符

1.算数运算符:包括+、-、*、/、%、++、--共7种,前五种都是二目运算符,后两种为一目运算符。

2.赋值运算符:包括简单赋值运算符,即“=”。以及复合赋值运算符,常见的复合赋值运算符有+=、-=、*=、/=、%=、&=、|=、^=、<<=、>>=等

3.关系运算符:用来对两个操作数比较,包括==、!=、<、>、<=、>=

4.逻辑运算符:包括!、&&(或&)、||(或|)、^

注意:&&与&的区别是:当第一个操作数为false时,前者不再计算第二个操作数的值。

||与|的区别是:当第一个操作数为true时,前者不再计算第二个操作数的值。

^表示对两个布尔型操作数进行异或运算,当且仅当只有一个操作数为true时,结果才为true.

分支语句

包括if语句和switch语句

注意:在C#里switch语句中不支持从一个case标签显示贯穿到另一个case标签,因此在每一个case块的后面都必须有一个break语句,但当case语句中没有代码时例外。

循环语句

1.while语句和do-while语句,两者的区别是while语句中循环体执行的次数可能是0次,do-while中循环体执行的次数至少是1次。

2.for语句

3.foreach语句

   foreach(类型循环变量 in 表达式){}

其中,“类型”是用来定义循环变量的类型,它应和“表达式”的数据类型保持兼容,“表达式”一般是一个数组名或集合名。

Break语句可用于switch语句中,表示立即跳转出switch语句。此外,break语句还可以用于循环结构中,用来立即终止循环,跳出循环结构。

Continue语句只能用于循环结构。它的作用是忽略continue后面的语句,直接进入本循环结构的下一次循环操作。

方法的参数传递

       声明方法时,所定义的参数是形式参数(形参),这些参数的值由调用方负责为其传值。调用方传递的是实际数据,成为实际参数(实参)。

       方法的参数有4种类型:一是值类型参数,不含任何修饰符;二是引用型参数,用ref修饰符声明;三是输出参数,使用out修饰符声明;四是数组型参数,使用params修饰符声明。

1.值类型参数:调用方向方法传递值类型参数时,被调用方所接收到的只是实参数据值的一个副本。当在方法内部改变形参的数据值时,不会影响实参变量的值,即实参变量和形参变量是两个不同的变量,他们具有各自的内存地址和数据值。实参变量的值传递给形参变量时是一种单向值传递。

2.引用型参数:调用方向方法传递引用型参数时,调用方将实参变量的引用赋给相对应的形参变量。因此,如果在方法内部更改了形参变量所引用的数据值,则同时也修改了实参变量引用的数据值。由于使用return语句一次只能返回一个数据值,如果需要返回多个数据,可以利用引用型参数来实现。

C#通过ref关键字来声明引用参数,无论是形参还是实参,都必须添加ref关键字。

3.输出参数:使用引用型参数可以使方法中返回多个结果,但要求先初始化实参。而输出参数不需要对实参进行初始化,它专门用于把方法中的数据通过形参返回给实参,不会将实参的值传递给形参。

C#通过out关键字来声明输出参数,无论是形参还是实参,都必须添加out关键字。

4.数组型参数:把数组作为参数,有两种使用形式:一是在形参数组前不添加params修饰符,另一种是添加该修饰符。不添加params修饰符时,所对应的实参必须是一个数组名;添加该修饰符时,所对应的实参可以是数组名,也可以是数组元素值的列表。

方法的重载

方法的重载是指在同一个类型中,以同样的名称声明两个或多个方法。方法的重载需要方法的参数的个数不同或者参数的类型不同,与方法的返回值无关。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值