C#(1)-.NET Framework介绍

通用类型系统(Common Type System,CTS

公共语言运行库(Common Language Runtime,CLR

在编译使用.NET Framework库的代码时,不是立即创建用于操作系统的本机代码,而是把代码编译为通用中间语言(Common Intermediate Langauge,CIL),执行应用程序是Just-In-Time(JIT)编译器的任务

程序集的概念:包括可执行的应用程序文件(*.exe)和其他应用程序使用的库(*.dll)以及元信息(数据信息)和可选资源(CIL使用的其他资源)

开发环境VS(visual studio)或VCE(virtual c# express)

数据类型分为内置类型构造类型

内置类型是C#中无法再分解的一种具体类型:有object、string、sbyte、byte、int、uint、short、ushort、long、ulong、char、bool、float、double、decimal。

构造类型是在构造类型基础上构造出来的类型,主要有枚举、数组、结构、集合、类、接口、委托。

按存储方式分为值类型引用类型:

值类型(栈,快):数值类型、boolean、char、枚举、结构类型。

引用类型(堆,慢):数组、String、类、接口、委托。

 

数据类型的转换

隐式转换和显式转换

装箱和拆箱:值类型和引用类型之间相互转换是要执行的操作。

1. 装箱在值类型向引用类型转换时发生

2. 拆箱在引用类型向值类型转换时发生

 

集合类 :System.Collections 命名空间包含定义各种对象集合的接口和类,这些对象包括列表、队列、位数组、哈希表和字典等。

 

 

流程控制之迭代循环

格式    foreach(类型变量 in 可迭代的表达式)

下例随机产生20个1~100整数,求大于50的数个数

[codesyntax lang=”csharp” lines=”normal” container=”div”]

namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
Random rd = new Random();
int[] a = new int[20];
for (int i = 0; i < a.Length; i++)
{
a[i] = rd.Next(100) + 1;
Console.WriteLine(a[i] + " ");
}
Console.WriteLine();
int n = 0;

[/codesyntax]

//x为用于遍历的变量,a是数组,可迭代
foreach (int x in a)
{
if (x > 50)
{
n++;
}
}
Console.WriteLine(n);
}
}
}

 

异常处理

C#中结构化异常处理是通过try-catch-finally实现的。

编写异常处理程序的方法:将可能抛出异常的代码放入一个try块中,把处理异常的代码放入catch块中,catch是一个语句块,它以关键字catch开始,后面跟一个异常类型和要执行的异常处理语句。

异常发生时,程序终止执行,程序控制权交给距离最近的异常处理程序,使得在引发异常语句之后的代码没有执行,但是有一些(如资源清理,文件关闭等)操作是必须执行的,即使抛出异常也需执行,为此c#使用finally块,无论是否抛出异常,finally块总会执行。

所有异常类继承自System.Exception,该基类下存在两类异常:

1.从SystemException派生的预定义公共语言运行时异常类。

2.从ApplicationException派生的用户自定义的应用程序异常类。

抛出异常:throw语句,将异常交给上一层程序处理。

自定义异常