股票里面有个ST股,就是Special Treatment的意思。就是对那些财务出现异常的上市公司,特别处理,在股票名字前面挂个ST,警示投资者注意风险。
这是题外话,今天我们要谈的是,在.NET的世界里,也有这么一些类型啊,受特别的对待(世界的不公平无处不在啊)。当EE碰到这些类型时,并不是像普通的类型那样去对待。我“龌龊”的给这些类型起个名字: ST Type。那到底有哪些类型呢,就我目前所知道的有:
CriticalFinalizerObject
MarshalByRefObject
ContextBoundObject
ValueType
Array
String
Enum
上面几个是在CLR层面上的,也就是这几个类型深入到核心了,会影响到CLR对这些类型的处理行为。
下面就分别对这几个类型的具体作用做一些简单的描述:
首先是CriticalFinalizerObject类型,该类型在System.Runtime.ConstrainedExecution命名空间下,属于mscorlib.dll程序集。
其实CriticalFinalizerObject类型非常简单:
true)]
class CriticalFinalizerObject
3: {
// Methods
5: [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
protected CriticalFinalizerObject()
7: {
8: }
9:
10: [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
11: ~CriticalFinalizerObject()
12: {
13: }
14: }