大学生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()
以上是做了一个整体的总结,之后将放上部分章节的内容
相关文章推荐
- CCNA考试命令大总结
- SCWCD 考试经验总结[转帖]
- SCEA310-051考试总结
- 日语三级考试重点语法总结
- 考试教训总结
- CCNA试验考试命令总结
- C语言部门考试,最后两道题总结
- 2008北航博士考试总结【转】
- CCNA认证考试命令大总结
- SCWCD考试计划和总结
- 思科CCNA考试实验常用的命令总结
- 通过了软件设计师的考试,虽然不是很有含金量,但也算是对自己的一个总结,对自己能力的一个肯定.
- CCNA考试命令集总结
- CCNA考试做实验类型总结
- 红十字会急救证模拟考试系统 -总结
- CCNA考试实验常用的命令总结
- 网络工程师考试总结和学习方法
- 计算机等级二级C语言上机考试改错题分析总结
- CCNA考试三部曲总结
- CCNA考试试验总结