0

编辑:查看此 MSDN 页面上的备注

https://msdn.microsoft.com/en-us/library/system.string.intern(v=vs.110).aspx

对于 String.Intern,它提到了 CLR 如何与文字字符串和实习池交互。

我想知道除了字符串文字之外,是否还有其他添加对实习池的引用的示例?

我能找到一份明确的清单,列出所有被拘留的物品吗?

4

1 回答 1

1

为了有资格实习,类型必须是:

1)引用类型。实习使用对象的引用,将其指向一般位置,而不是堆中分配给对象的区域。由于值类型只是按值寻址,因此没有办法实习它们。

2)不可变。一个被实习的类型可以被多个独立的对象引用,用户甚至可能不知道他们是被实习的。因此,对象的值不能改变。

下面是基本 CLR 类型及其对应的 C# 别名的列表。除 System.String 之外的所有类型都是值类型。因此,除了 System.String 之外,所有这些也是可变的。因此,只有 System.String 将成为实习的候选人(是的,它是唯一被实习的类)。

  • System.Boolean 布尔值
  • System.SByte 字节
  • System.Int16 短
  • System.Int32 整数
  • System.Int64 长
  • System.Byte 字节 System.UInt16 ushort
  • System.UInt32 uint
  • System.UInt64 ulong System.Single float
  • System.Double 双
  • System.Char char System.String 字符串
  • System.DateTime 不适用
  • System.Decimal 十进制
于 2015-05-23T05:42:27.823 回答