1.关于。Net Framework
.net Framework是由微软开发,一个致力于敏捷软件开发(Agile software development),快速应用开发(Rapid application development),平台无关性和网络透明化的软件开发平台。
2Net Framework的组件
由公共语言运行时(Common Language Runtime 简称 CLR)和。Net Framework基类库(Framework Class Librily)组成。
.Net Framework类库分为 Web窗体和 Web SerVice CLR分为 CLS(公共语言规范) 和 CTS(通用类型系统)
MISL微软中间语言 Microsoft Intermediate Language
3Net 平台相关术语
缩写 全称 说明
CLR Common Language Runtime 公共语言运行时
FCL Framework Class Libraray .net 框架类库
GC Garbage Collector 垃圾收集机制
MSIL Microsoft Intermediate Language Microsoft中间语言
CTS Common Type Sysytem 通用系统类型
CLS Common Language Spectification
公共语言规范
JIT Just In Time 即时编译
CTL最重要的特征是:所有类型都继承至公共的基类--Object.
4.C#与。NET 的关系
C#是一种简洁。类型安全的面向对象的语言,开发人员可以使用它来构建在。Net Framework上运行的各中安全、可靠地应用程序。
5.C#命名空间
C#中的类是用命名空间组织起来的。有以下要点:
.命名空间内的类型称为命名空间的成员
一个源文件可以包含多个命名空间的声明
.引入命名空间的语法:Using命名空间名称
C#中常用的命名空间
命名空间 说明
System 包含基本类,这些类定义常用的值类型和引用数据类型、事件和事件处理程序、接口、属性和异常处理
System.Date 提供对表示ADO.NET结构的类的访问
System.Text 包含表示ASCLL、Unicod/UTF-7和UTF-8字符串编码的类
System .Collections
包含接口和类。这些接口和类定义各种对象 (如列表、队列、位数组、哈希表和字典)的集合。
System.IO 用于操作文件的类
System.Threading 提供一些使得可以进行多线程编程的类和集合
System.Net 为当前网络上使用的多种协议提供了简单的编程接口
命名空间的名称的要点:
命名空间名称可以使任何有效标识符。
命名空间可以包含句点符号,用于吧命名空间组织成层次。
不要把命名空间命名成为与类或类型相同的名称。
命名空间声明需使用关键字namespace.语法如下:
namespace 命名空间的名称 { //定义类 }
6.C#异常处理的分类:
1.语法错误
2.运行时错误
3.逻辑错误
7·C#中的异常
.NET提供了许多的预定义的异常类,我们也可以创建自己的异常类。这些处理异常的类都同在System命名空间内,且都直接或间接的派生自System.Exception类。
System .Exception 类的常用属性
属性
说明
Message 描述错误情况的文本
Souce 导致异常的应用程序或对象名
StackTrace 堆栈上方法调用信息,他有助于跟踪抛出的异常的方法
常用的异常类:
1.常见的异常类:
①SystemException类:该类表示。NET平台引发的异常,被称为系统异常,通常无法修复。
②ApplicationException类:该类表示应用程序发生非致命错误时引发的异常。
2.与参数有关的异常
①ArgumentException类:该类用于处理参数无效的异常。
②FormatException类:该类用于处理参数格式错误的异常。
3.数组有关的异常
①IndexOutOfException类:该类用于处理了下标超出了数组长度所引发的异常。
②ArrayTypeMismatchException类:该类用于处理数组中存储数据类型不正确的元素引发的的异常。
③RankExecption类:该类用于处理维数错误时所引发的异常类
4.于算数有关的异常
①ArithmeticException类:该类用于处理与算术有关的异常。
②DivideByZeroException类:表示试图除以零而引发的异常。
7.1)try和catch块
① try中编写可能出现的异常,如有异常就传到catch中进行处理
语法:
try
{
//可能出现的异常的程序的代码
}
catch(IndexOutOfException e)
{
//处理异常的代码
}
*注:这是数组下标越界的异常(IndexOutOfException)
②还有一种catch块几乎可以捕获所有的类型的异常,称为通用catch块
语法:
try
{
//可能引发的异常的程序代码
}
catch(Exception e)
{
//处理异常的代码
}
③多重catch代码
语法:
try
{
//可能引发的异常的程序代码
}
catch(IndexOutOfException el)
{
//处理异常的代码
}
catch(DivideByZeroException e2)
{
//处理异常的代码块
}
……
*注:如果使用的是通用的catch块,那么有且只能有一个通用catch块。
7.2)finally块的使用
语法:
try
{
//可能引发的异常的代码块
}
catch(Exception e)
{
//处理异常的代码块
}
finally
{
//最终执行的代码
}
*注意一下编码规范:
请勿将try…catch块用于流程控制
不得声明空的catch块
避免在catch块中的嵌套try…catch
7.3)使用throw引发异常
使用throw语句既可以引发系统异常,也可以引发自定义异常
例:
//判断年龄范围
if(age<18 || age>30)
{
//引发自定义定义异常
throw new InputAgeException(age+"不是有效年龄(请输入18-30之间的数字)");
}
//程序中使用的自定义异常InputAgeException定义如下:
public class InputAgeExcecption:Exception
{
public InputAgeException(string message):base(message)
{
}
}