您的位置:首页 > 编程语言 > C#

大学生C#考试必看总结~

2015-01-11 04:29 190 查看

近期忙于考试,不过在C#考试的时候将学过的内容进行了归纳整理,特置于网上,供学C#的同学们学习,分享一下~如有不足之处,还望海涵。。

CLR公共语言运行时

BCL/FCL 基础类库

CTS 公共类型规范

CLS 公共语言规范 符合公共语言规范的任何语言都可以在公共语言运行库上运行

第2章 语法基础I

1、c#代码结构

命名空间的引入 using 类中不用使用完全限定名来引用类

定义命名空间 namespace

定义类 class

main方法 static (在和实例对象之前)

2、Console类 (实现控制台的i/o) System命名空间(所有命名空间的根)

读取单个字符或整行

将值类型的实例、字符数组、对象集自动转换为字符串,写入控制台

ReabLine()等待输入字符,直到按回车键为止

ReadKey()

3、变量 —— 代表存储地址,类型决定存储在变量中的熟知的类型。

在一个命令行中,类型不同的变量赋值不能同时赋值,必须分开两行。

变量名必须字母开头

字母、数字、下划线

不能和关键字、命名空间、类库名称相同、

int a=1;//初始化

int a;

a=1;//赋值

作用域——访问该变量的代码区域(字段、局部变量)

字段_——类中(不是类中的方法和属性中) 整个类

局部变量——独立的语句块 定义开始到离开语句块

同名的局部变量会隐藏同名的类及变量。

4、常量

值在使用过程中不会发生变化

关键字 const。

必须声明时初始化,其后不能再修改。而变量的值可以重新修改。

默认为 static 但定义时不需要声明为static。

不能用变量的值进行初始化。

只读字段可以用变量的值进行初始化。类级别声明初始化,只能为静态字段

int d=1;

readonly static int a=d;

5、预定义数据类型(通过GetType方法获取变量的数据类型)

值类型: 整型(有符号:sbyte
short int long 无符号:byte ushort uint ulong )默认为Int32

long a=124;先赋值,再转换为long类型

long b=124L;赋值之前已经将124强制转换为long类型

(栈) 浮点型(预设是double类型,如果想设为float,可加F或f)

字符型(一个16位Unicode字符单引号)‘a’‘\u0041’‘\x0041’(char)65

bool型

decimal型(128位高精度浮点数 加M或m)

日期型(DateTime)

转义字符 \0空 \a警告 \b 退格 \f换页 \n 换行 \t 水平制表符

“\’hello\’”

@”’hello’”

第3章 语法基础II

第4章 类型转换

1、隐式转换(扩展转换):窄数据类型转换为宽数据类型,且能保证转换过程中不丢失数据

(1) 系统默认,不需要加以声明就能转换

(2)编译器自动执行

(3)整数和浮点数之间转换可能会丢失数据long/ulong转换为float会丢4个字节

(4) 不存在浮点型与decimal之间的隐式转换

(5)不存在到char类型的隐式转换

2、显示转换(强制类型转换):

(1)数值类型只能在数字、char类型和enum类型之间转换

(2)Boolean数据类型不支持转换

(3)所有类型都可以通过ToString()方法转换为字符串

(4)Convet类的相应方法将字符串转换为相应的数据类型

3、装箱:(可以隐式进行)

值类型转换为引用类型

4、拆箱:(必须显示)

引用类型转换为值类型

装什么,拆什么(不仅装数值还要装类型)

5、枚举类型:

(1) 访问修饰符 enum 枚举名:基础类型(显示声明,默认为int)

{

枚举成员1,

枚举成员2(该枚举类型的命名常数不能重名)必须在基础类型范围内

第一个枚举成员的默认值为零,以后依次加一允许多个枚举成员有相同的值,没有赋值的前一个加一

}

(2)System.Enum类型(本身不是枚举类型,是一个类类型,所有枚举类型都是从它派生的)是所有枚举类型的抽象基类,从他继承来的成员在任何枚举类型中都可用。

(3)枚举类型不能隐式转换为基本类型,基本类型也不能隐式转换为枚举类型。

(4) 枚举名.枚举成员

第5章 流程控制

1、条件语句

If单一

If/else二选一

If/else/if多选一

2、分支语句

Switch(int/char/string 表达式)

{

case 常量表达式1:

语句1;

break;

case 常量表达式2:

语句2;

break;

defult:

break;

}

3、循环语句

for

foreach 针对集合和数组 尤其不知道有多少元素的

while

do/while 循环至少一次

4、跳转控制语句

break 中断循环,跳出循环体

continue 继续下一次循环

return 退出方法

goto 无条件转移语句

第6章 数组 System.Array:所有数组的基类

数组作用 :保存一系列数据类型相同的数据

引用类型,存放在堆内存中

一维数组:

数组类型[ ] 数组名

定义数组后,必须对其进行初始化才能使用。用下标引用或修改数组中的元素值

动态初始化,使用new。

数据类型【】 数组名=new 数据类型【n】 {元素值0,元素值1,。。。,元素值n-1}此时可以省略“数组长度”。数组长度不能用变量,只能是整形常量。也可不给出初始值部分。

和静态初始化(这种情况下不能将数组定义和静态初始化分开)

数据类型【】 数组名={元素值0,元素值1,。。。,元素值n-1}

二维数组

数据类型【,】 数组名;

3、多维数组

4、锯齿数组(交错数组)数组中的数组

必须赋行数,必须不赋列数

5、Array类

CreateInstance方法来创建数组

Array obj=Array.CreateInstance(typeof(string),10);

Sort()

Reverse()

IndexOf()

LastIndexOf()

SetValue()

GetValue()

CopyTo()

Copy()

Clear()

GetLength()

GetUpperBound()

GetLowerBound

第7章 运算符与表达式

1、单目运算符逻辑非(!)自增(++)自减(——)

双目运算符

算术运算符(+—*/%) 逻辑运算符(&&
||) 字符串连接运算符(+)

三目运算符

赋值运算符(从右向左赋值)

算术运算符

加法减法运算符

自增自减运算符

乘法除法运算符

取余运算符

关系运算符

逻辑运算符

条件运算符

is判断是否是某个类型

as引用类型的显示类型转换

new 创建类类型(object、class、string)数值类型、数组类型和代理类型的实例(即变量)

typeof获得指定类型的System.Type对象

第8章 集合与范式

1、非泛型集合

将成员存储为Object类型的实例,可以存储任何类型的元素,同时会增加装箱拆箱的性能开销。

命名空间:System.Collections

ArrayList类——动态数组 Add AddRange Remove RemoveAt

Hashtable类——哈希表 名值对(类似于字典)Add
Keys Key Value

Stack类——堆栈 后进先出Push 入栈 Pop出栈 Peek弹出最后一项不删除

Queue类——队列 先进先出 Enqueue 入队 Dequeue出队 Peek弹出最后一项不删除

泛型集合

命名空间:System.Collections.Generic

泛型可以存储任何类型的元素,同时类型安全,又省去装箱拆箱的性能开销。

List<T>类

Dictionary<K,V>

Stack<T>

Queue<T>

第10章 类和方法

所有的类都继承于System.Object;

类的成员: 数据成员:常量、字段

函数成员:方法、属性(被封装的字段)、索性器、事件、构造函数、析构函数

方法访问修饰符:public internal(只可以被本程序集内所有类访问) protected
private(默认)

类访问修饰符:public internal(默认)(只可以被本程序集内所有类访问) protected
private

方法参数:值参数。引用型参数ref。输出参数out。数组型参数params

方法重载

成员变量和局部变量的区别

对象的生命周期

第11章 属性和索引器

字段(其实就是一个变量):

域或成员变量(在类成员中,用于存储属性值),实现数据的传递功能。private

字段和常量作为数据成员(字段和常量和事件)可以直接被访问,而属性不能直接进行访问,必须通过访问器set
get属性是对字段的封装,字段的延伸,是类对外的特性。

public

访问修饰符 数据类型 属性名

静态属性:应用于整个类而不是类的实例,只能访问类的静态成员

访问修饰符 static 数据类型 属性名

索引器:访问修饰符 数据类型 this【数据类型 标识符】,只能用于类的实例,不能再类上直接使用。

对他们的访问是通过其所属对象进行的,必须用this

不能是静态,参数只能是传值类型,也可多态。

静态成员:静态数据成员变量,静态成员方法

第12章继承和多态

继承:(不允许多继承)class 父类名称{}

虚方法(可以由子类重写的方法):访问修饰符 virtual 方法返回类型 方法名()

class 子类名称:父类名称{}

重写父类方法访问修饰符 override 方法返回类型 方法名()

base : 挂接父类的构造函数签名,代表将数据传递到父类构造函数(调用);提供对父类的访问;

静态成员函数中不能使用base;

静态成员为该类及子类所共有;

成员变量、方法的隐藏:new密封类:

sealed 不能做基类,不能是抽象类(为了派生子类),为了防止派生密封方法:

防止派生中子类重写该方法;

多态:

同一实现接口,使用不同的实例而执行不同的操作;

使用虚函数实现动态多态:

父类引用指向子类对象;

子类重写父类虚方法;

父类引用调用被重写的方法;

第13章 抽象类和接口

抽象类:public abstract class MyClass{}

在不需要创建父类对象,而且父类中某些方法不需要有方法体时就用抽象类和抽象方法即可;

抽象类不能创建对象;

方法和属性都没有具体实现,使用override重写方法和属性;

专门用于派生子类; 子类必须重写抽象方法 override,否则,子类仍是抽象类;

抽象方法:

public abstract void MtMethod();

不能定义为private,因为要被子类所重写,可以定为protected;

方法体不能有实现代码;

包含抽象方法的一定是抽象类,但抽象类中的方法不一定是抽象方法

接口:(“纯”的抽象类)方法特征的集合

public interface IFly() 允许多继承;

不允许包含字段;

所有的方法默认都是public abstract,不允许加访问修饰符;

实现接口的类,不需要标注override,访问修饰符必须是public

第14章 异常处理

System.Exception

异常:在程序运行过程中所发生的不正常的事件,中断程序的运行。

错误:语法错误、逻辑错误、运行时错误

处理异常:try
catch finally throw

自定义异常:继承于ApplicationException

第15章 文件操作

System.IO

Directory :Exists() CreateDirectory() Move() Delete()

DirectoryInfo: Exists Creat() MoveTo() Delete()

以上是做了一个整体的总结,之后将放上部分章节的内容
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: