MsCorLib.dll中的内容
来源:互联网 发布:mysql设置编码utf8 编辑:程序博客网 时间:2024/05/18 03:45
用Together VS.NET中的Model View查看References中的内容。第一个引用就是MsCorLib.dll,打开其default图(Diagram)后,有两个部分:Microsoft和System。这里先研究一下System命名空间。打开System类图缩略:
哈哈,所有System中的东西都有条理地出现在你面前了。从左到右挑显眼的先看一下:
一、IClonable和_AppDomain接口
1.IClonable有7个类实现了它,分别是:
CharEnumerator:支持循环访问 String 并读取它的各个字符。
Array:提供创建、操作、搜索和排序数组的方法,因而在公共语言运行库中用作所有数组的基类。
MultcastDelegate:表示多路广播委托;即,其调用列表中可以拥有多个元素的委托。MulticastDelegate 拥有一个带有链接的委托列表,该列表称为调用列表,它包含一个或多个元素。在调用多路广播委托时,将按照调用列表中的委托出现的顺序来同步调用这些委托。如果在该列表的执行过程中发生错误,则会引发异常。
Delegate:表示委托,委托是一种数据结构,它引用静态方法或引用类实例及该类的实例方法。
Version:表示公共语言运行库程序集的版本号。
OperatingSystem:表示有关操作系统的信息,如版本和平台标识符。
String:表示文本,即一连串 Unicode 字符。
2.AppDomain实现了_AppDomain接口,表示应用程序域,它是一个应用程序在其中执行的独立环境。
二、MarshalByRefObject允许在支持远程处理的应用程序中跨应用程序域边界访问对象。他有子类:AppDomain和ContextBoundObject:定义所有上下文绑定类的基类。
三、IAppDomainSetup接口,对应的实现类是AppDomainSetup表示可以添加到AppDomain 的实例的程序集绑定信息。
四、接下来是三大接口:IComparable,ICoverable,IFormattable,他们主要是为定义数据类型准备的。
1.实现IComparable接口的有如下数据类型(他们都是可比较的):
Version,DateTime,String,TimeSpan,Char,Boolean,Double,Single,Int32,Int64,Byte,Int16,SByte,UInt64,Decimal,UInt32,Uint16,Guid,Enum
TimeSpan表示一个时间间隔。
Guid表示全局唯一标识符 (GUID)。
2.实现ICoverable接口的有如下数据类型(他们都是可转换的):
DateTime,String,Char,Boolean,Double,Single,Int32,DBNull,Int64,Byte,Int16,SByte,UInt64,Decimal,UInt32,UInt16,Enum
DBNull用于指示不存在某个已知值(通常在数据库应用程序中)。
3.实现IFormattable接口的有下如数据类型(他们都是可格式化的):
DateTime,Double,Single,Int32,Int64,Byte,Int16,SByte,UInt64,Decimal,UInt32,UInt16,GUID,Enum
看来只有表示时间和数值的类既可以比较,又可以转换,还可以格式化。
这里我们发现了System中除了有最基本的数据类型外,还有一个如TimeSpan,Guid,DBNull等其它编程工具中不一定有的数据类型。说到数据类型,还应该有列表、包、集合等数据类型,除了Array直接在System中表示数组外,其它应该都在其下一级命名空间Collections中。
五、接下来是一些特殊的类型:UIntPtr,Type,IntPtr,Void
UIntPtr和IntPtr用于表示指针或句柄的平台特定类型。
Type表示类型声明:类类型、接口类型、数组类型、值类型和枚举类型。
Void指示不返回值的方法,即具有 void 返回类型的方法。他在System.Reflection中使用,他没有成员,因此不能创建此结构的实例。
六、Attribute是一个重要的类,表示自定义属性的基类,System空间中有很多现成的子类。
七、Exception是另一个重要的类,他表示应用程序运行时发生错误。System中,直接继承的Excepton有SystemException和ApplicationException。前者还有大量的子类,用于表示System中出现在错误。
八、还有一些相对独立的类:
Enviroment提供有关当前环境和平台的信息以及操作它们的方法。
LocalDataStoreSlot封装内存槽以存储本地数据。
LocalDataStoreMgr这个类在MSDN中好象没有提供解释。应该就是跟LocalDataStoreSlot一起用来管理内存用的吧。
TimeZone表示时区。
EvenArgs是包含事件数据的类的基类。
Math为三角函数、对数函数和其他通用数学函数提供常数和静态方法。
IServerProvider定义一种检索服务对象的机制,服务对象是为其他对象提供自定义支持的对象。
IFormatProvider提供用于检索控制格式化的对象的机制。
ICustomProvider定义一种方法,它支持对象值的自定义(用户定义)格式设置。
IAsyncProvider表示异步操作的状态。
IDisposable定义一种释放分配的非托管资源的方法。
GC控制系统垃圾回收器(一种自动回收未使用内存的服务)。
Console表示控制台应用程序的标准输入流、输出流和错误流。
Buffer操作基元类型的数组。
BitConverter将基础数据类型与字节数组相互转换。
ArgIterator表示变长参数列表;即采用可变数量的参数的函数的参数。
Activator包含特定的方法,用以在本地或从远程创建对象类型,或获取对现有远程对象的引用。
Object支持 .NET Framework 类层次结构中的所有类,并为派生类提供低级别服务。这是 .NET Framework 中所有类的最终基类;它是类型层次结构的根。
Random表示伪随机数生成器,一种能够产生满足某些随机性统计要求的数字序列的设备。
WeakReference表示“弱引用”,即在引用对象的同时仍然允许对该对象进行垃圾回收。
TypedReference描述既包含指向某位置的托管指针,也包含该位置可能存储的类型的运行时表示形式的对象。
九、除了上面这些最基本的类,System中还有很多子空间:Configration,Resources,Diagostics,Collections,Threading,RunTime,Text,Globalization,Reflection,Security,IO
这些内容比较大,需要分别再研究。
十、从上面这些内容可以看到,其实System中的内容是非常丰富的,一些最基本的功能和实现都在这里有实现,有些使用了一个类或结构或接口,有些干脆使用一个子命名空间来表达。微软.NET中的很多思想都体现在或实现在MsCorLib.dll中了,如果以后实现一些功能,应该先来这里看看.NET是否已有现成的实现存在了,否则自已费劲实现起来不定空易,不也一定有效。学习.NET,就是要把他已经实现在东西全部掌握,方便以后自已使用,同时,借鉴他的实现方法,给自已更多思路。
以上的学习只是一点皮毛,还可以好好研究一下里面用到的设计模式。下一次再好好地把九里列的子命名空间好好地一个个研究一下。
- MsCorLib.dll中的内容
- 学习 Mscorlib.dll(转)
- 异常在 mscorlib.dll 中发生
- 中第一次偶然出现的“mscorlib.dll”类型的异常
- Xamarin.Android编译提示找不到mscorlib.dll.so文件
- 在 System.Threading.ThreadAbortException 中第一次偶然出现的“mscorlib.dll”类型的异常
- 未处理的“System.FormatException”类型的异常出现在 mscorlib.dll 中。
- 未处理的“System.FormatException”类型的异常出现在 mscorlib.dll 中
- 关于--在 System.Threading.ThreadAbortException 中第一次偶然出现的“mscorlib.dll”类型的异常(转)
- 在 System.Threading.ThreadAbortException 中第一次偶然出现的“mscorlib.dll”类型的异常
- C# 异常 System.Threading.ThreadAbortException 中第一次偶然出现的“mscorlib.dll”类型的异常
- 关于--在 System.Threading.ThreadAbortException 中第一次偶然出现的“mscorlib.dll”类型的异常(转)
- 在 System.Threading.ThreadAbortException 中第一次偶然出现的“mscorlib.dll”类型的异常
- “System.StackOverflowException”类型的未经处理的异常出现在 mscorlib.dll 中。
- C#--An unhandled exception of type 'System.StackOverflowException' occurred in mscorlib.dll in c#
- 未处理的“System.StackOverflowException”类型的异常出现在 mscorlib.dll
- 关于--在 System.Threading.ThreadAbortException 中第一次偶然出现的“mscorlib.dll”类型的异常
- 在 System.Threading.ThreadAbortException 中第一次偶然出现的“mscorlib.dll”类型的异常
- VC 常用数据类型总结
- 浅谈Java的输入输出流
- 今天我突然明白了sun与ms是如何和解的!
- 8月1号费用结算[8月12号更新]
- VC 和 MFC 的一些常见问题
- MsCorLib.dll中的内容
- C# 编码规范和编程好习惯
- Creating recurive stored procedures in T-SQL.
- JAVA环境的配置 windows xp
- 我回来了!
- [ZT]李开复给中国学生的第三封信:成功、自信、快乐
- 尊敬的QQ用户
- redhat下设置ADSL
- BBSXP官方插件开发团队: