NET基础知识(MSDN整理)

本文深入解析了.NET框架的架构与特性,包括公共语言运行时(CLR)、中间语言(IL)、托管代码等核心概念,同时详尽阐述了C#语言的关键特性,如泛型、继承、接口等,以及各种关键字的用途。

一: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):

  • 设置或检索与属性关联的私有数据成员的值的方法。读写属性具有 getset 访问器。只读属性只有 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 属性一起使用;在这种情况下,该方法还必须声明为 staticextern 关键字还可以定义外部程序集别名,使得可以从单个程序集中引用同一组件的不同版本。

p       Override:

  • 用来扩展或修改继承的方法、属性、索引器或事件的抽象实现或虚实现。不能使用修饰符 newstaticvirtualabstract 来修改 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

  •  用于设置访问器和添加或移除事件处理程序。

转载于:https://www.cnblogs.com/zhdonghu/archive/2010/11/11/1874928.html

.NET Framework 4.0 常用类库参考手册 [微软官方 MSDN] MSDN Library - .NET Framework 4.0 - 命名空间 (节选版) 制作成了chm格式,方便离线状态下学习! ======================================= 原文地址:http://msdn.microsoft.com/zh-cn/library/ms229335.aspx ======================================= .NET Framework 类库 - 命名空间 (节选版) Microsoft.Win32 提供两种类型的类:处理由操作系统引发的事件的类和对系统注册表进行操作的类。 System 包含用于定义常用值和引用数据类型、事件和事件处理程序、接口、特性和处理异常的基础类和基类。其他类提供支持下列操作的服务:数据类型转换,方法参数操作,数学计算,远程和本地程序调用,应用程序环境管理以及对托管和非托管应用程序的监管。 System.Collections 包含定义各种对象集合(如列表、队列、位数组、哈希表和字典)的接口和类。 System.Data 包含组成大部分 ADO.NET 结构的类。ADO.NET 结构使您可以生成可用于有效管理来自多个数据源的数据的组件。 System.Data.Common 包含由 .NET Framework 数据提供程序共享的类。.NET Framework 数据提供程序描述用于在托管空间中访问数据源(如数据库)的类的集合。 System.Data.Linq 包含支持在 LINQ to SQL 应用程序中与关系数据库进行交互的类。 System.Data.Linq.Mapping 包含用于生成表示关系数据库的结构和内容的 LINQ to SQL 对象模型的类。 System.Data.Mapping 提供用于存储数据映射信息的类型。 System.Data.Metadata.Edm 包含一组类型,这些类型表示模型中由实体框架使用的概念,以及一组帮助应用程序使用元数据的类。 System.Data.Objects 包含可访问对象服务的核心功能的类。 System.Data.Objects.DataClasses 包含以下这些类:Entity Data Model (EDM) 中定义的类型的基类、由导航属性返回的类型的基类,以及用于定义将公共语言运行时 (CLR) 对象映射到概念模型中类型的特性的类。 System.Data.Sql 包含支持特定于 SQL Server 的功能的类。此类的 API 扩展已添加到 SQL Server 的 .NET Framework 数据提供程序 ( System.Data.SqlClient) 中。 System.Data.SqlClient 包含封装 SQL Server .NET Framework 数据提供程序的类。SQL Server .NET Framework 数据提供程序描述了用于在托管空间中访问 SQL Server 数据库的类集合。 System.IO 包含允许对数据流和文件进行同步和异步读写的类型。 System.Linq 包含支持使用语言集成查询 (LINQ) 的查询的类和接口。 System.Web 提供启用浏览器/服务器通信的类和接口。 ……
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值