在.NET参考源代码中的
第一个是关于
String
类中,有许多注释提到了一个叫做EE
的东西。第一个是关于
m_stringLength
的:(链接)
//NOTE NOTE NOTE NOTE
//These fields map directly onto the fields in an EE StringObject. See object.h for the layout.
//
[NonSerialized]private int m_stringLength;
// The Empty constant holds the empty string value. It is initialized by the EE during startup.
// It is treated as intrinsic by the JIT as so the static constructor would never run.
// Leaving it uninitialized would confuse debuggers.
//
//We need to call the String constructor so that the compiler doesn't mark this as a literal.
//Marking this as a literal would mean that it doesn't show up as a field which we can access
//from native.
public static readonly String Empty;
另外还涉及到Length
:
// Gets the length of this string
//
/// This is a EE implemented function so that the JIT can recognise is specially
/// and eliminate checks on character fetchs in a loop like:
/// for(int I = 0; I < str.Length; i++) str[i]
/// The actually code generated for this will be one instruction and will be inlined.
我猜它可能与Engine或External有关,但我想要一个确切的定义来解释它,EE
是什么意思?
MSCoreE
。他们不应该把它标记为MSCoreEE.dll
吗? - zastrowmMSCOREE
代表微软通用对象运行时执行引擎。 - zastrowm