第一篇:上传(图解)解决方案、项目、程序集、命名空间
解决方案、项目、程序集、命名空间
一、解决方案、项目、程序集、命名空间
初学者很容易把这些概念搞混淆。先说说项目(Project),通俗的说,一个项目可以就是你开发的一个软件。在.Net下,一个项目可以表现为多种类型,如控制台应用程序,Windows应用程序,类库(Class Library),Web应用程序,Web Service,Windows控件等等。如果经过编译,从扩展名来看,应用程序都会被编译为.exe文件,而其余的会被编译为.dll文件。既然是.exe文件,就表明它是可以被执行的,表现在程序中,这些应用程序都有一个主程序入口点,即方法Main()。而类库,Windows控件等,则没有这个入口点,所以也不能直接执行,而仅提供一些功能,给其他项目调用。
在Visual Studio.Net中,可以在“File”菜单中,选择“new”一个“Project”,来创建一个新的项目。例如创建控制台应用程序。注意在此时,Visual Studio除了建立了一个控制台项目之外,该项目同时还属于一个解决方案(Solution)。这个解决方案有什么用?如果你只需要开发一个Hello World的项目,解决方案自然毫无用处。但是,一个稍微复杂一点的软件,都需要很多模块来组成,为了体现彼此之间的层次关系,利于程序的复用,往往需要多个项目,每个项目实现不同的功能,最后将这些项目组合起来,就形成了一个完整的解决方案。形象地说,解决方案就是一个容器,在这个容器里,分成好多层,好多格,用来存放不同的项目。一个解决方案与项目是大于等于的关系。建立解决方案后,会建立一个扩展名为.sln的文件。
在解决方案里添加项目,不能再用“new”的方法,而是要在“File”菜单中,选择“Add Project”。添加的项目,可以是新项目,也可以是已经存在的项目。程序集叫Assembly。学术的概念我不想提,通俗的角度来说,一个项目也就是一个程序集。从设计的角度来说,也可以看成是一个完整的模块(Module),或者称为是包(Package)。因此,一个程序集也可以体现为一个dll文件,或者exe文件。怎样划分程序集也是大有文章的,不过初学者暂时不用考虑它。命名空间(namespace)是在C++里面就有的概念。引入它,主要是为了避免一个项目中,可能会存在的相同对象名的冲突。这个命名空间的定义,没有特殊的要求。不过基本上来说,为了保证其唯一性,最好是用uri的格式,例如BruceZhang.com。这个命名空间有点像我们姓名中的姓,然后每个对象的名字则是姓名中的名。如果有重复,再国外的命名中,还可以加上middle name。那么名都为勇的,由于姓氏不同也就分开了,或者叫张勇,或者叫赵勇。当然人的姓氏重复者居多,所以我们为命名空间取名时,尽可能的复杂一点。
有许多初学者,常常把一个项目就理解为一个命名空间。其实这两者没有绝对的联系,在项目里我们也可以定义很多不相同的命名空间。但为了用户便于使用,最好在一个项目中,其命名空间最好是一体的层次结构。在Visual Studio里,我们可以在项目中新建一个文件夹,默认情况下,该文件夹下对象的命名空间,应该是“项目的命名空间.文件夹名”。当然,我们也可以在namespace中修改它。命名空间和程序集名,都可以在Visual Studio中设置。用鼠标右键单击项目名,就可以弹出如下对话框:
在图中,Assembly Name就是程序集名,如果经过编译,则为该项目的文件名。而Default Namespace则为默认的命名空间。在开发软件时,我们要养成良好的习惯,在建立新项目后,就将这些属性设置好。一旦设置好了Default Namespace,则以后新建的对象,其命名空间即为该设定的值。至于程序集名,如果是dll文件,建议其名最好与Default Namespace一致。
实例演练:
(一)创建控制台应用程序“Hello World!”
1、打开Visual Studio.Net,选择“File”菜单的“new”,选择“Project”;
2、选择Visual C# Projects中的“Console Application”,如图所示:
在Location中,定位你要保存的项目的路径,而名字则为“FirstExample”。该名字此时既是解决方案的名字,同时也是该项目的名字。
3、用鼠标右键单击项目名,在弹出的对话框中,将Assembly Name命名为HelloWorld,将Default Namespace命名为:BruceZhang.com.FirstExample。
4、此时Visual Studio中已经建立了一个文件,其名为Class1.cs(如果是Visual Studio 2005,则默认为Program.cs);修改该文件的文件名为HelloWorld.cs,同时修改文件中的namespace,和类名,如下: namespace BruceZhang.com.FirstExample { ///
5、注意在HelloWorld.cs中,有一个Main()方法。这是因为我们建立的是控制台应用程序。在Main()方法中添加如下代码: Console.WriteLine(“Hello World!”);Console.Read();这里的Console是一个能对控制台进行操作的类。
6、运行。
检查保存项目的路径文件夹FirstExample/bin/debug,已经存在了一个HelloWorld.exe文件。
(二)为解决方案添加一个新项目
1、在“File”菜单中,选择“Add Project”,添加“New Project”。在对话框中选择“Class Library”,名字为Printer。至于保存路径,可以放在之前建立的FirstExample文件夹下:
2、在Visual Studio右侧,可以看到现在有两个项目了。仍然修改新项目的名称和默认命名空间名,均为BruceZhang.com.Printer。
3、将默认建立的Class1.cs改名为MessagePrinter.cs,同时修改其代码为: namespace BruceZhang.com.Printer { ///
4、编译Printer项目。鼠标右键单击该项目名,在菜单中选择“Build”。成功编译后,找到文件夹Printer/bin/debug,可以发现有文件BruceZhang.com.Printer.dll,这就是最后形成的程序集文件。
5、关联这两个项目。我们希望是在FirstExample项目中用到Printer项目的Print()方法,前提是需要在FirstExample项目中添加对Printer项目的引用。右键单击FirstExample项目的“Reference”,选择“Add Reference”,在对话框中选择“Project”标签,找到该项目并选中,最后如图所示:
6、现在就可以在FirstExample项目中使用MessagePrinter了。首先,在命名空间中添加对它的使用(Using),然后再Main()方法中调用它,最后代码如下: using System;using BruceZhang.com.Printer;namespace BruceZhang.com.FirstExample { ///
7、运行。结果与前一个例子一样。
在这个例子中,解决方案中就包含了两个项目,一个是控制台应用程序,一个是类库。类库提供一些基本的功能,如例子中的Print()方法。我们常常把一些共用的方法,放到类库中。这样其他的应用程序就可以去调用它。例如本例的控制台应用程序。如果新建的Windows应用程序,也需要这个功能,就可以直接引用MessagePrinter的Print()方法,而不必重复去实现。
第二篇:解决方案、命名空间和项目的关系
一、解决方案、项目、程序集、命名空间
初学者很容易把这些概念搞混淆。先说说项目(Project),通俗的说,一个项目可以就是你开发的一个软件。在.Net下,一个项目可以表现为多种类型,如控制台应用程序,Windows应用程序,类库(Class Library),Web应用程序,Web Service,Windows控件等等。如果经过编译,从扩展名来看,应用程序都会被编译为.exe文件,而其余的会被编译为.dll文件。既然是.exe文件,就表明它是可以被执行的,表现在程序中,这些应用程序都有一个主程序入口点,即方法Main()。而类库,Windows控件等,则没有这个入口点,所以也不能直接执行,而仅提供一些功能,给其他项目调用。
在Visual Studio.Net中,可以在“File”菜单中,选择“new”一个“Project”,来创建一个新的项目。例如创建控制台应用程序。注意在此时,Visual Studio除了建立了一个控制台项目之外,该项目同时还属于一个解决方案(Solution)。这个解决方案有什么用?如果你只需要开发一个Hello World的项目,解决方案自然毫无用处。但是,一个稍微复杂一点的软件,都需要很多模块来组成,为了体现彼此之间的层次关系,利于程序的复用,往往需要多个项目,每个项目实现不同的功能,最后将这些项目组合起来,就形成了一个完整的解决方案。形象地说,解决方案就是一个容器,在这个容器里,分成好多层,好多格,用来存放不同的项目。一个解决方案与项目是大于等于的关系。建立解决方案后,会建立一个扩展名为.sln的文件。
在解决方案里添加项目,不能再用“new”的方法,而是要在“File”菜单中,选择“Add Project”。添加的项目,可以是新项目,也可以是已经存在的项目。
程序集叫Assembly。学术的概念我不想提,通俗的角度来说,一个项目也就是一个程序集。从设计的角度来说,也可以看成是一个完整的模块(Module),或者称为是包(Package)。因此,一个程序集也可以体现为一个dll文件,或者exe文件。怎样划分程序集也是大有文章的,不过初学者暂时不用考虑它。
命名空间(namespace)是在C++里面就有的概念。引入它,主要是为了避免一个项目中,可能会存在的相同对象名的冲突。这个命名空间的定义,没有特殊的要求。不过基本上来说,为了保证其唯一性,最好是用uri的格式,例如BruceZhang.com。这个命名空间有点像我们姓名中的姓,然后每个对象的名字则是姓名中的名。如果有重复,再国外的命名中,还可以加上middle name。那么名都为勇的,由于姓氏不同也就分开了,或者叫张勇,或者叫赵勇。当然人的姓氏重复者居多,所以我们为命名空间取名时,尽可能的复杂一点。有许多初学者,常常把一个项目就理解为一个命名空间。其实这两者没有绝对的联系,在项目里我们也可以定义很多不相同的命名空间。但为了用户便于使用,最好在一个项目中,其命名空间最好是一体的层次结构。在Visual Studio里,我们可以在项目中新建一个文件夹,默认情况下,该文件夹下对象的命名空间,应该是“项目的命名空间.文件夹名”。当然,我们也可以在namespace中修改它。
命名空间和程序集名,都可以在Visual Studio中设置。用鼠标右键单击项目名,就可以弹出如下对话框:
在图中,Assembly Name就是程序集名,如果经过编译,则为该项目的文件名。而Default Namespace则为默认的命名空间。在开发软件时,我们要养成良好的习惯,在建立新项目后,就将这些属性设置好。一旦设置好了Default Namespace,则以后新建的对象,其命名空间即为该设定的值。至于程序集名,如果是dll文件,建议其名最好与Default Namespace一致。
实例演练:
(一)创建控制台应用程序“Hello World!”
1、打开Visual Studio.Net,选择“File”菜单的“new”,选择“Project”;
2、选择Visual C# Projects中的“Console Application”,如图所示:
在Location中,定位你要保存的项目的路径,而名字则为“FirstExample”。该名字此时既是解决方案的名字,同时也是该项目的名字。
3、用鼠标右键单击项目名,在弹出的对话框中,将Assembly Name命名为HelloWorld,将Default Namespace命名为:BruceZhang.com.FirstExample。
4、此时Visual Studio中已经建立了一个文件,其名为Class1.cs(如果是Visual Studio 2005,则默认为Program.cs);修改该文件的文件名为HelloWorld.cs,同时修改文件中的namespace,和类名,如下:
namespace BruceZhang.com.FirstExample { ///
5、注意在HelloWorld.cs中,有一个Main()方法。这是因为我们建立的是控制台应用程序。在Main()方法中添加如下代码:
Console.WriteLine(“Hello World!”);Console.Read();这里的Console是一个能对控制台进行操作的类。
6、运行。
检查保存项目的路径文件夹FirstExample/bin/debug,已经存在了一个HelloWorld.exe文件。
(二)为解决方案添加一个新项目
1、在“File”菜单中,选择“Add Project”,添加“New Project”。在对话框中选择“Class Library”,名字为Printer。至于保存路径,可以放在之前建立的FirstExample文件夹下:
2、在Visual Studio右侧,可以看到现在有两个项目了。仍然修改新项目的名称和默认命名空间名,均为BruceZhang.com.Printer。
3、将默认建立的Class1.cs改名为MessagePrinter.cs,同时修改其代码为: namespace BruceZhang.com.Printer { ///
4、编译Printer项目。鼠标右键单击该项目名,在菜单中选择“Build”。成功编译后,找到文件夹Printer/bin/debug,可以发现有文件BruceZhang.com.Printer.dll,这就是最后形成的程序集文件。
5、关联这两个项目。我们希望是在FirstExample项目中用到Printer项目的Print()方法,前提是需要在FirstExample项目中添加对Printer项目的引用。右键单击FirstExample项目的“Reference”,选择“Add Reference”,在对话框中选择“Project”标签,找到该项目并选中,最后如图所示:
6、现在就可以在FirstExample项目中使用MessagePrinter了。首先,在命名空间中添加对它的使用(Using),然后再Main()方法中调用它,最后代码如下:
using System;
using BruceZhang.com.Printer;namespace BruceZhang.com.FirstExample { ///
7、运行。结果与前一个例子一样。
在这个例子中,解决方案中就包含了两个项目,一个是控制台应用程序,一个是类库。类库提供一些基本的功能,如例子中的Print()方法。我们常常把一些共用的方法,放到类库中。这样其他的应用程序就可以去调用它。例如本例的控制台应用程序。如果新建的Windows应用程序,也需要这个功能,就可以直接引用MessagePrinter的Print()方法,而不必重复去实现。
第三篇:WebSerives System.Xml.Serialization命名空间
要使用.NET进行对象的序列化,必须在解决方案中添加System.Xml的引用,并且在类文件中引入System.Xml.Serialization命名空间。这样就可以在文件中使用序列化所需要的各种特性了。
Imports System.Xml.Serialization
如果对XML Serialization缺少了解,请首先参考拙文:在.NET中实现对象序列化
上面的例子包含了典型的XML中常见的各种元素:XML声明、XML根节点、XML节点、XML属性、XML集合。除XML声明外,在.NET中都有对应的特性用于定义这些元素。这些特性包括:XmlRootAttribute、XmlTypeAttribute、XmlElementAttribute、XmlAttributeAttribute、XmlArrayAttribute和XmlArrayItemAttribute。另外,还有两个常用的特性,XmlIgnoreAttribute用于标记在对象序列化时需要被忽略的部分,XmlIncludeAttribute用于标记在生成XML Schema时需要包括的类型。
如果没有显式地标记任何特性,那么默认类的特性为XmlTypeAttribute、类成员的特性为XmlElementAttribute,且名称为类或类成员的名称。例如:
Public Class Order
Public ID As String
Public OrderDate As String
End Class
如果不做任何特性标记,使用下面的代码序列化时: Dim o As New Order
With o
.ID = 123456
.OrderDate = Date.Now.ToShortDateString
End With
Dim writer As New XmlTextWriter(“abc.xml”, Encoding.UTF8)
Dim serializer As New XmlSerializer(GetType(Order))
writer.Formatting = Formatting.Indented serializer.Serialize(writer, o)
序列化后的XML为:
可以看到,
XML声明是.NET自动添加的,但是encoding是在XmlTextWriter中指定的,如果不指定encoding,那么XML声明只有。我使用的是.NET 1.1,这个版本中只支持XML 1.0版本。另外,如果不指定encoding,那么默认的编码可能也是UTF8(没找到相关的资料)。
.NET默认为Order类添加了XMLSchema和XMLSchema-instance两个W3C的命名空间。该命名空间也可以自己指定,方法是使用XmlSerializer的另一个Serialize方法。
Dim ns As New XmlSerializerNamespaces ns.Add(“", ”“)writer.Formatting = Formatting.Indented serializer.Serialize(writer, o, ns)
要将类序列化为XML节点:
Public Class Order
‘ any code here.End Class
要将类序列化为XML根节点:
Public Class Order
‘ any code here.End Class
当在类中同时使用XmlRootAttribute、XmlTypeAttribute时,序列化文档中的类型以XmlRootAttribute为准:
Public Class Order
‘ any code here.End Class
要将类成员序列化为XML节点:
Public ID As String
要将类成员序列化为XML属性:
Public ID As String
要将类成员序列化为XML集合:
Public Class Order
Public ID As String
Public orderDate As String
Public Items As New ArrayList
End Class
Public Class OrderItem
Public Name As String
End Class
使用特性的一个好处是:可以在代码和序列化的文档中使用不同的编码规范。
第四篇:.Net常用命名空间和类介绍.doc
.Net常用命名空间和类介绍
一、基础命名空间 System.Collections 包含了一些与集合相关的类型,比如列表,队列,位数组,哈希表和字典等. System.IO 包含了一些数据流类型并提供了文件和目录同步异步读写. System.Text 包含了一些表示字符编码的类型并提供了字符串的操作和格式化 System.Reflection 包括了一些提供加载类型,方法和字段的托管视图以及动态创建和调用类 型功能的类型. System.Threading 提供启用多线程的类和接口.二、图形命名空间 System.Drawing 这个主要的GDI+命名空间定义了许多类型,实现基本的绘图类型(字体,钢笔,基本画笔等)和无所不能的Graphics对象. System.Drawing2D 这个命名空间提供高级的二维和失量图像功能. System.Drawing.Imaging 这个命名空间定义了一些类型实现图形图像的操作. System.Drawing.Text 这个命名空间提供了操作字体集合的功能. System.Drawing.Printing 这个命名空间定义了一些类型实现在打印纸上绘制图像,和打印机交互以及格式化某个打印任务的总体外观等功能.
三、数据命名空间 System.Data 包含了数据访问使用的一些主要类型. System.Data.Common 包含了各种数据库访问共享的一些类型. System.XML 包含了根据标准来支持XML处理的类. System.Data.OleDb 包含了一些操作OLEDB数据源的类型. System.Data.Sql 能使你枚举安装在当前本地网络的SQL Server实例. System.Data.SqlClient 包含了一些操作MS SQL Server数据库的类型,提供了和 System.Data.OleDb相似的功能,但是针对SQL做了优化. System.Data.SqlTypes 提供了一些表示SQL数据类型的类. System.Data.Odbc 包含了操作Odbc数据源的类型. System.Data.OracleClient 包含了操作Odbc数据库的类型. System.Transactions 这个命名空间提供了编写事务性应用程序和资源管理器的一些类.
四、WEB命名空间 System.Web 这个命名空间包含启用浏览器/服务器通信的类和接口.这些命名空间类用于管 理到客户端的HTTP输出和读取HTTP请求.附加的类则提供了一些功能,用于服 务器端的应用程序以及进程,Cookie管理,文件传输,异常信息和输出缓存的控制. System.Web.UI 这个命名空间包含Web窗体的类,包括Page类和用于创建Web用户界面的其 他标准类. System.Web.UI.HtmlControls 这个命名空间包含用于HTML特定控件的类,这些控件可以添加到Web窗体中 以创建Web用户界面
System.Web.UI.WebControls 包含创建ASP.NET服务器控件的类,当添加到窗体时,这些控件将呈现浏览器特 定的HTML和脚本,用于创建和设备无关的Web用户界面. System.Web.Mobile 包含生成ASP.NET移动应用程序所需要的核心功能,包括身份验证和错误处理. System.Web.UI.MobileControls 包括一组ASP.NET服务器控件,这些控件可以针对不同的移动设备呈现应用程 序. System.Web.Services 包含能使你使用和生成XML Web Service的类,这些服务是驻留在服务器中的 可编程实体,并通过标准Internet协议公开.五、框架服务命名空间 System.Diagnostics 这个命名空间所提供的类允许你启动系统进程,读取和写入事件日志以及使用性 能计数器监视系统性能. System.DirectoryServices 这个命名空间所提供的类可便于从托管代码中访问Active Directory.此命名空 间中的类可以与任何Active Directory服务提供程序一起使用. System.Media 包含用于播放声音文件和访问系统提供的声音的类. System.Management 这个命名空间提供的类用于管理一些信息和事件,它们关系到系统,设备和WMI 基础结构所使用的应用程序. System.Messaging 这个命名空间提供的类用于连接到网络上的消息队列,向队列发送消息,从队列 接收或查看消息. System.ServiceProcess 这个命名空间提供的类用于安装和运行服务,服务是长期运行的可执行文件,它 们不通过用户界面来运行. System.Timers 这个命名空间提供基于服务器的计时器组件,用以按指定的间隔引发事件.六、安全性命名空间 System.Security 这个命名空间提供公共语言运行库安全性系统的基础结构. System.Net.Security 这个命名空间提供用于主机间安全通信的网络流. System.Web.Security 这个命名空间包含的类用于在Web应用程序中实现ASP.NET安全性.七、网络命名空间 System.Net 包含的类可为当前网络上的多种协议提供简单的编程接口. System.Net.Cache 这个命名空间定义了一些类和枚举,用于为使用WebRequest和HttpWebRequest类获取的资源定义缓存策略. System.Net.Configuration 这个命名空间包含了以编程方式访问和更新System.Net命名空间的配置设置的类. System.Net.Mime 这个命名空间包含了用于将电子邮件发送到SMTP服务器进行传送的类. System.Net.Networkinformation 这个命名空间提供对网络流量数据,网络地址信息和本地计算机的地址更改通知 的访问,还包含实现Ping实用工具的类.你可以使用Ping和相关的类来检查是否
可通过网络访问某台计算机. System.Net.Sockets 这个命名空间为严格控制网络访问的开发人员提供Windows套接字接口的托 管实现
八、配置命名空间
System.Configuration 这个命名空间包含用于以编程方式访问.Net Framework配置设置并处理配置 文件中错误的类. System.Configuration.Assemblies 这个命名空间包含用于配置程序集的类. System.Configuration.Provider 这个命名空间包含由服务器和客户端应用程序共享,以支持可插接式模型轻松添 加或移除功能的基类.九、本地化命名空间 System.Globalization 包含的类定义与区域性相关的信息,其中包括语言,国家地区,所使用的日历,日期 格式的模式,货币与数字以及字符串的排序顺序. System.Resources 这个命名空间提供一些类和接口,它们使开发人员得以创建,存储并管理应用程序中使用的各种区域性特定资源. System.Resources.Tools 这个命名空间包含StronglyTypedResourceBuilder类,该类提供对强类型资源 的支持.这个编译时功能通过创建包含一组静态只读属性的类封装对资源的访问, 从而使得使用资源变得更加容易
第五篇:C# System命名空间简介
System 命名空间 类
Activator 包含特定的方法,用以在本地或从远程创建对象类型,或获取对现有远程对象的引用。
AppDomain 表示应用程序域,它是一个应用程序在其中执行的独立环境。不能继承此类。AppDomainSetup 表示可以添加到 AppDomain 的实例的程序集绑定信息。
AppDomainUnloadedException 在尝试访问已卸载的应用程序域时引发的异常。ApplicationException 发生非致命应用程序错误时引发的异常。ArgumentException 在向方法提供的其中一个参数无效时引发的异常。
ArgumentNullException 当将空引用(在 Visual Basic 中为 Nothing)传递给不接受它作为有效参数的方法时引发的异常。
ArgumentOutOfRangeException 当参数值超出调用的方法所定义的允许取值范围时引发的异常。
ArithmeticException 因算术运算、类型转换或转换操作中的错误而引发的异常。
Array 提供创建、操作、搜索和排序数组的方法,因而在公共语言运行库中用作所有数组的基类。
ArrayTypeMismatchException 当试图在数组中存储类型不正确的元素时引发的异常。AssemblyLoadEventArgs 为 AssemblyLoad 事件提供数据。Attribute 自定义属性的基类。
AttributeUsageAttribute 指定另一特性类的用法。无法继承此类。
BadImageFormatException 当 DLL 或可执行程序的文件图像无效时引发的异常。BitConverter 将基础数据类型与字节数组相互转换。Buffer 操作基元类型的数组。
CannotUnloadAppDomainException 卸载应用程序域的尝试失败时引发的异常。CharEnumerator 支持循环访问 String 并读取它的各个字符。
CLSCompliantAttribute 指示程序元素是否符合公共语言规范(CLS)。无法继承此类。Console 表示控制台应用程序的标准输入流、输出流和错误流。无法继承此类。ContextBoundObject 定义所有上下文绑定类的基类。
ContextMarshalException 在尝试将对象封送过上下文边界失败时引发的异常。ContextStaticAttribute 指示静态字段的值是特定上下文的唯一值。Convert 将一个基本数据类型转换为另一个基本数据类型。DBNull 表示空值。Delegate 表示委托,委托是一种数据结构,它引用静态方法或引用类实例及该类的实例方法。DivideByZeroException 试图用零除整数值或十进制数值时引发的异常。
DllNotFoundException 当未找到在 DLL 导入中指定的 DLL 时所引发的异常。
DuplicateWaitObjectException 当对象在同步对象数组中不止一次出现时引发的异常。EntryPointNotFoundException 因不存在项方法而导致加载类的尝试失败时引发的异常。Enum 为枚举提供基类。
Environment 提供有关当前环境和平台的信息以及操作它们的方法。不能继承此类。EventArgs EventArgs 是包含事件数据的类的基类。Exception 表示在应用程序执行期间发生的错误。
ExecutionEngineException 当公共语言运行库的执行引擎中发生内部错误时引发的异常。无法继承此类。
FieldAccessException 当试图非法访问类中的私有字段或受保护字段时引发的异常。FlagsAttribute 指示可以将枚举作为位域(即一组标志)处理。
FormatException 当参数格式不符合调用的方法的参数规范时引发的异常。GC 控制系统垃圾回收器(一种自动回收未使用内存的服务)。
IndexOutOfRangeException 试图访问索引超出数组界限的数组元素时引发的异常。无法继承此类。
InvalidCastException 因无效类型转换或显式转换引发的异常。
InvalidOperationException 当方法调用对于对象的当前状态无效时引发的异常。
InvalidProgramException 当程序包含无效 Microsoft 中间语言(MSIL)或元数据时将引发的异常。通常这表示编译器中出现错误。
LoaderOptimizationAttribute 用于为可执行应用程序的主方法设置默认的加载程序优化策略。LocalDataStoreSlot 封装内存槽以存储本地数据。无法继承此类。
MarshalByRefObject 允许在支持远程处理的应用程序中跨应用程序域边界访问对象。Math 为三角函数、对数函数和其他通用数学函数提供常数和静态方法。MemberAccessException 访问类成员的尝试失败时引发的异常。
MethodAccessException非法尝试访问类中的私有方法或受保护的方法时引发的异常。MissingFieldException 试图动态访问不存在的字段时引发的异常。
MissingMemberException 试图动态访问不存在的类成员时引发的异常。MissingMethodException 试图动态访问不存在的方法时引发的异常。
MTAThreadAttribute 指示应用程序的 COM 线程模型为多线程单元(MTA)。
MulticastDelegate 表示多路广播委托;即,其调用列表中可以拥有多个元素的委托。
MulticastNotSupportedException 当试图合并不可合并的委托类型的两个实例时引发的异常,除非操作数中有一个是空引用(在 Visual Basic 中为 Nothing)。无法继承此类。NonSerializedAttribute 指示可序列化类的某个字段不应被序列化。无法继承此类。
NotFiniteNumberException 当浮点值为正无穷大、负无穷大或非数字(NaN)时引发的异常。
NotImplementedException 在无法实现请求的方法或操作时引发的异常。NotSupportedException 当调用的方法不受支持,或试图读取、查找或写入不支持调用功能的流时引发的异常。
NullReferenceException 尝试取消引用空对象引用时引发的异常。
Object 支持.NET Framework 类层次结构中的所有类,并为派生类提供低级别服务。这是.NET Framework 中所有类的最终基类;它是类型层次结构的根。ObjectDisposedException 对已处置的对象执行操作时所引发的异常。ObsoleteAttribute 标记不再使用的程序元素。无法继承此类。
OperatingSystem 表示有关操作系统的信息,如版本和平台标识符。OutOfMemoryException 没有足够的内存继续执行程序时引发的异常。OverflowException 在选中的上下文中所进行的算术运算、类型转换或转换操作导致溢出时引发的异常。
ParamArrayAttribute 指示方法在调用中将允许参数的数目可变。无法继承此类。PlatformNotSupportedException 当功能未在特定平台上运行时所引发的异常。
Random 表示伪随机数生成器,一种能够产生满足某些随机性统计要求的数字序列的设备。RankException 将维数错误的数组传递给方法时引发的异常。
ResolveEventArgs 为 TypeResolve、ResourceResolve 和 AssemblyResolve 事件提供数据。SerializableAttribute 指示一个类可以序列化。无法继承此类。StackOverflowException 挂起的方法调用过多而导致执行堆栈溢出时引发的异常。无法继承此类。
STAThreadAttribute 指示应用程序的 COM 线程模型是单线程单元(STA)。String 表示文本,即一连串 Unicode 字符。
SystemException 为 System 命名空间中的预定义异常定义基类。ThreadStaticAttribute 指示静态字段的值对于每个线程都是唯一的。TimeZone 表示时区。Type 表示类型声明:类类型、接口类型、数组类型、值类型和枚举类型。
TypeInitializationException 作为由类初始值设定项引发的异常周围的包装引发的异常。无法继承此类。
TypeLoadException 类型加载失败发生时引发的异常。TypeUnloadedException 试图访问已卸载的类时引发的异常。
UnauthorizedAccessException 当操作系统因 I/O 错误或指定类型的安全错误而拒绝访问时所引发的异常。
UnhandledExceptionEventArgs 为以下情况下引发的事件提供数据:存在一个不是由应用程序域处理的异常。
Uri 提供统一资源标识符(URI)的对象表示形式和对 URI 各部分的轻松访问。
UriBuilder 为统一资源标识符(URI)提供自定义构造函数,并修改 Uri 类的 URI。UriFormatException 当检测到无效的统一资源标识符(URI)时引发的异常。ValueType 提供值类型的基类。
Version 表示公共语言运行库程序集的版本号。无法继承此类。WeakReference 表示“弱引用”,即在引用对象的同时仍然允许对该对象进行垃圾回收。接口
IAppDomainSetup 表示可以添加到 AppDomain 的实例的程序集绑定信息。IAsyncResult 表示异步操作的状态。
ICloneable 支持克隆,即用与现有实例相同的值创建类的新实例。
IComparable 定义通用的比较方法,由值类型或类实现以创建类型特定的比较方法。IConvertible 定义特定的方法,这些方法将实现引用或值类型的值转换为具有等效值的公共语言运行库类型。
ICustomFormatter 定义一种方法,它支持对象值的自定义(用户定义)格式设置。IDisposable 定义一种释放分配的非托管资源的方法。IFormatProvider 提供用于检索控制格式化的对象的机制。IFormattable 提供将对象的值格式化为字符串表示形式的功能。IServiceProvider 定义一种检索服务对象的机制,服务对象是为其他对象提供自定义支持的对象。
_AppDomain 表示应用程序域,它是一个应用程序在其中执行的独立环境。结构
ArgIterator 表示变长参数列表;即采用可变数量的参数的函数的参数。Boolean 表示布尔值。
Byte 表示一个 8 位无符号整数。Char 表示一个 Unicode 字符。DateTime 表示时间上的一刻,通常以日期和当天的时间表示。Decimal 表示十进制数。
Double 表示一个双精度浮点数字。Guid 表示全局唯一标识符(GUID)。Int16 表示 16 位有符号的整数。Int32 表示 32 位有符号的整数。Int64 表示 64 位有符号的整数。
IntPtr 用于表示指针或句柄的平台特定类型。RuntimeArgumentHandle 引用变长参数列表。
RuntimeFieldHandle 使用内部元数据标记表示一个字段。
RuntimeMethodHandle RuntimeMethodHandle 是方法的内部元数据表示形式的句柄。RuntimeTypeHandle 表示使用内部元数据标记的类型。SByte 表示 8 位有符号整数。Single 表示一个单精度浮点数字。TimeSpan 表示一个时间间隔。
TypedReference 描述既包含指向某位置的托管指针,也包含该位置可能存储的类型的运行时表示形式的对象。
UInt16 表示 16 位无符号整数。UInt32 表示 32 位无符号整数。UInt64 表示 64 位无符号整数。
UIntPtr 用于表示指针或句柄的平台特定类型。
Void 指示不返回值的方法,即具有 void 返回类型的方法。委托
AssemblyLoadEventHandler 表示处理 AppDomain 的 AssemblyLoad 事件的方法。AsyncCallback 引用在异步操作完成时调用的回调方法。
CrossAppDomainDelegate 由 DoCallBack 使用,用于跨应用程序域的调用。EventHandler 表示将处理不包含事件数据的事件的方法。
ResolveEventHandler 表示处理 AppDomain 的 TypeResolve、ResourceResolve 和 AssemblyResolve 事件的方法。
UnhandledExceptionEventHandler表示将处理事件的方法,该事件由应用程序域不处理的异常引发。枚举
AttributeTargets 指定可以对它们应用特性的应用程序元素。DayOfWeek 指定一周的某天。
Environment.SpecialFolder 指定用于检索系统特殊文件夹的目录路径的枚举常数。LoaderOptimization 一个枚举,它与 LoaderOptimizationAttribute 类一起使用为可执行文件指定加载程序优化。
PlatformID 描述程序集所支持的平台。TypeCode 指定对象的类型。
UriHostNameType 为 Uri.CheckHostName 方法定义主机名类型。UriPartial 为 Uri.GetLeftPart 方法定义 URI 的各部分。