一:NET介绍
p 是一种面向网络、支持各种用户终端的开发平台环境。
p 提供对下一代网络通信标准——可扩展标记语言(Extensible Markup Language,XML)的完全支持,使应用程序的开发变得更容易、更简单。
p 定义了一种公用语言子集(Common Language Subset,CLS),统一了编程类库。
p 是一个 XML Web 服务平台:Web 服务是一种可编程的应用程序。它使用一系列标准协议来对各种请求作出响应。它对 UDDI 请求的响应是告诉请求者它可以提供什么服务。该服务由它所处理的消息的顺序和格式定义;这些消息的发送和接收都使用简单对象访问协议 (SOAP),而此协议建立在 XML、HTTP 和 SMTP 的基础之上。
二:NET框架意义:
1.NET框架的意义就在于只用统一的命令集支持任何的编程语言.
2.NET框架是.NET平台的基础架构,构造其强大功能来源于公共语言运行时(Common Language Runtime)和类库(.Net Framework)
三:NET 一些基本概念
p .Net运行时:
- 公共语言运行时(CLR),它实际管理内存,加载程序、运行程序的代码,执行安全验证,以及提供所有支持服务的代码。
p 中间语言(IL):
- 当编译为托管代码时,编译器将源代码翻译为 Microsoft 中间语言 (MSIL),这是一组可以有效地转换为本机代码且独立于 CPU 的指令。MSIL 包括用于加载、存储和初始化对象以及对对象调用方法的指令,还包括用于算术和逻辑运算、控制流、直接内存访问、异常处理和其他操作的指令。
p 托管代码:
- 在Net环境中运行的任何代码都称为托管代码(managed code)。Net外部的其他代码也运行在Windows上,这些代码称为非托管代码(unmanaged code)。
- 如C#,VB.net为托管代码,必须在Net框架下运行,C++可以写成托管或非托管代码。
p 公共类型系统(CTS):
- 为了实现语言的互操作性,必须有一组各种语言都认可的基本数据类型,这样才能对所有语言进行标准化处理。CTS 确保所有托管代码都是可以自我描述的。各种 Microsoft 和第三方语言编译器生成符合 CTS 的托管代码。这意味着托管代码可在严格实施类型保真和类型安全的同时使用其他托管类型和实例。
p 公共语言规范(CLS):
- 在互操作过程中,标示一组语言特征的集合,使被不同语言编译器所编译的对象能够互相理解。
- CTS和CLS一起确保语言的互操作性
p .NET Framework 类库:
- .NET Framework 类库是一个与公共语言运行库紧密集成的可重用的类型集合。该类库是面向对象的,并提供您自己的托管代码可从中导出功能的类型。是所有语言共享的识别类库。可使用 .NET Framework 开发下列类型的应用程序和服务:
p 控制台应用程序。
p Windows GUI 应用程序(Windows 窗体)。
p XML Web services。
p ASP.NET 应用程序。
p Windows 服务。
p C# 是一种简洁、类型安全的面向对象的语言,开发人员可以使用它来构建在 .NET Framework 上运行的各种安全、可靠的应用程序。
p C# 作为一种面向对象的语言,支持封装、继承和多态性概念。所有的变量和方法,包括 Main 方法(应用程序的入口点),都封装在类定义中。
五:C#述语
p 访问修饰符:
- 用于限制对类型或类型成员的访问的关键字,如 private、protected、internal 或 public。
p 可访问成员:
- 一种可由给定类型访问的成员。一种类型的可访问成员不一定可由另一种类型访问。
p 访问器(accessor):
- 设置或检索与属性关联的私有数据成员的值的方法。读写属性具有 get 和 set 访问器。只读属性只有 get 访问器。
p 匿名方法:
- 匿名方法是作为参数传递给委托的代码块。
p 基类:
- 一种由其他“派生”类继承的类。
p 调用堆栈:
- 运行时从程序的开始位置到当前正在执行的语句的一系列方法调用。
p 类(class):
- 一种描述对象的数据类型。类不仅包含数据,还包含作用于数据的方法。
p 构造函数 (constructor) :
- 类或结构中用于初始化该类型的对象的一种特殊方法。
p 委托 (delegate):
- 委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。
p 派生类:
- 一种使用继承获取、扩展或修改其他“基”类的行为和数据的类。
p 析构函数:
- 类或结构中用于准备要由系统销毁的实例的一种特殊方法。有关更多信息。
p 事件(event):
- 类或结构的一个成员,用于发送更改通知。
p 字段(field):
- 类或结构的一个可直接访问的数据成员。
p 泛型 (generics) :
- 使用泛型,可以定义使用类型参数定义的类和/或方法。当客户端代码实例化类型时,会指定一个特定的类型作为参数。
p 不可变类型 (immutable type) :
- 一种类型,其实例数据(字段和属性)在创建后不会更改。大多数值类型都属于不可变类型。
p 不可访问的成员:
- 无法由给定类型访问的成员。一种类型的不可访问的成员并不一定对另一种类型是不可访问的。
- 继承:
- C# 支持继承,因此从其他类(也称为基类)派生的类将继承相同的方法和属性。继承涉及基类和派生类。
p 接口 (interface):
- 一种只包含公共方法、事件和委托的签名的类型。继承接口的对象必须实现该接口中定义的所有方法和事件。类或结构可以继承任意数目的接口。
p 跌代器(iterator):
- 迭代器是这样一种方法,它允许包含集合或数组的类的使用者使用 foreach,in循环访问该集合或数组。
p Member:
- 在类或结构上声明的字段、属性、方法或事件。
p 方法:
- 一个提供类或结构的行为的命名代码块。
- 可变类型 (mutable type):
- 一种类型,其实例数据(字段和属性)在创建后可以更改。大多数引用类型都属于可变类型。
p 嵌套类型 (nested type):
- 在另一个类型的声明内声明的类型。
p Object:
- 类的实例。对象存在于内存中,具有数据和作用于这些数据的方法。
p 属性 (property):
- 通过访问器访问的数据成员。
p 重构 (refactoring):
- 重用以前输入的代码。
p 引用类型 (reference type):
- 一种数据类型。声明为引用类型的变量指向存储数据的位置。
- Static:
- 声明为静态的类或方法不必首先使用关键字 new 进行实例化就可存在。Main() 就属于静态方法。
p 结构 (struct) :
- 一种复合数据类型,通常用于包含具有某种逻辑关系的多个变量。结构还可以包含方法和事件。结构不支持继承,但支持接口。结构是值类型,而类是引用类型。
p 值类型 (value type):
- 值类型是在堆栈上分配的数据类型,与在堆上分配的引用类型不同。内置类型(包括数值类型以及结构类型和可空类型)都属于值类型。类类型和字符串类型属于引用类型。
六:C#关键字
―――――类型
- 值类型:
- 枚举类型
- 结构类型
- 简单类型
ü 整数类型: sbyte、byte、short、ushort、int、uint、long、ulong
ü 布尔类型: true、false
ü 字符类型: char
ü 实数类型: 浮点类型float、double和十进制类型decimal
- 引用类型:
- 类(class)
- 接口(interface)
- 委托(delegate)
- Object
- String
p Void
―――――修饰符
- 访问修饰符:
- public 访问不受限制。
- protected 访问仅限于包含类或从包含类派生的类型。
- internal 访问仅限于当前程序集。
- protected internal 访问仅限于从包含类派生的当前程序集或类型。
- private 访问仅限于包含类型。
p Abstract:
- 在类声明中使用 abstract 修饰符以指示某个类只能是其他类的基类。标记为抽象或包含在抽象类中的成员必须通过从抽象类派生的类来实现。abstract 修饰符可以和类、方法、属性、索引器及事件一起使用。
p Const:
- const 关键字用于修改字段或局部变量的声明。它指定字段或局部变量的值是常数,不能被修改。
p Event:
- 用于指定事件,类和结构使用事件将出现的可能影响对象状态的事件通知给对象。
- Extern:
- extern 修饰符用于声明在外部实现的方法。extern 修饰符的常见用法是在使用 Interop 服务调入非托管代码时与 DllImport 属性一起使用;在这种情况下,该方法还必须声明为 static,extern 关键字还可以定义外部程序集别名,使得可以从单个程序集中引用同一组件的不同版本。
p Override:
- 用来扩展或修改继承的方法、属性、索引器或事件的抽象实现或虚实现。不能使用修饰符 new、static、virtual 或 abstract 来修改 override 方法。
p Readonly:
- 当字段声明包括 readonly 修饰符时,该声明引入的字段赋值只能作为声明的一部分出现,或者出现在同一类的构造函数中。
- Sealed:
- sealed 修饰符可以应用于类、实例方法和属性。密封类不能被继承。密封方法会重写基类中的方法,但其本身不能在任何派生类中进一步重写。
- Static:
- 使用 static 修饰符声明属于类型本身而不是属于特定对象的静态成员。static 修饰符可用于类、字段、方法、属性、运算符、事件和构造函数,但不能用于索引器、析构函数或类以外的类型。
p Unsafe:
- unsafe 关键字表示不安全上下文,该上下文是任何涉及指针的操作所必需的。
p Virtual:
- virtual 关键字用于修饰方法、属性、索引器或事件声明,并且允许在派生类中重写这些对象。
p volatile :
- 关键字表示字段可能被多个并发执行线程修改。
―――――语句类型
p 选择语句: if, else, switch, case
p 迭代语句: do, for, foreach, in, while
p 跳转语句:break, continue, default, goto, return,yield
p 异常处理语句: throw, try-catch, try-finally, try-catch-finally
p 检查和未检查: checked, unchecked
p Fixed 语句: fixed
p Lock 语句: lock
―――――方法参数
- Params:
- params 关键字可以指定在参数数目可变处采用参数的方法参数。
- 在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。
p Out:
- out 关键字会导致参数通过引用来传递。
- 方法定义和调用方法都必须显式使用 out 关键字。
- 传递到 out 参数的参数必须最先初始化,返回前赋值.
p Ref:
- ref 关键字使参数按引用传递。
- 方法定义和调用方法都必须显式使用 ref 关键字。
- 传递到 ref 参数的参数必须最先初始化。在方法中对参数所做的任何更改都将反映在该变量中。
―――――命名空间
- Namespace:
- namespace 关键字用于声明一个范围。此命名空间范围允许您组织代码并为您提供了创建全局唯一类型的方法。
p using:
- 作为指令,用于为命名空间创建别名或导入其他命名空间中定义的类型。
ü 允许在命名空间中使用类型,以便您不必限定在该命名空间中使用的类型。
ü 为命名空间创建别名。
- 作为语句,用于定义一个范围,在此范围的末尾将释放对象。
p 外部别名:
- extern 关键字还用作方法修饰符,声明用非托管代码编写的方法。
―――――运算符
p as 将对象转换为可兼容类型。
p is 检查对象的运行时类型。
p new
- new 运算符 创建对象。
- new 修饰符 隐藏继承成员。
- new 约束 限定类型参数。
p sizeof 获取类型的大小。
p typeof 获取类型的 System.Type 对象。
p true
- true 运算符 返回布尔值 true 表示真,否则返回 false。
- true 表示布尔值 true。
p false
- false 运算符 返回布尔值 true 表示假,否则返回 false。
- false 表示布尔值 false。
p stackalloc 在堆栈上分配内存块。
―――――访问
p base:
- 访问基类的成员。
p this:
- 引用类的当前实例。
―――――上下文
p get
- 为属性或索引器定义访问器方法。
p partial
- 在整个同一编译单元内定义分部类、结构和接口。
p set
- 为属性或索引器定义访问器方法。
p where
- 向泛型声明中添加约束。
p Yield
- 在迭代器块中使用,用于向枚举数对象返回值或发信号结束迭代。
p Value
- 用于设置访问器和添加或移除事件处理程序。