我听说C#存储变量的类型信息,包括变量的值。在C#中存储类型信息
我的问题是,如果我使用的是List<>
或Dictionary<>
对象,是其中包含的每个对象的类型信息存储区还是只有一次?
我想在Generics
的情况下,它只是一次,而在ArrayList
的情况下,它是为每个项目。但是,我想问。
我听说C#存储变量的类型信息,包括变量的值。在C#中存储类型信息
我的问题是,如果我使用的是List<>
或Dictionary<>
对象,是其中包含的每个对象的类型信息存储区还是只有一次?
我想在Generics
的情况下,它只是一次,而在ArrayList
的情况下,它是为每个项目。但是,我想问。
如果你从逻辑上思考它,运行时真的会将每个变量的类型信息和变量本身一起存储吗?这将是非常浪费!大多数应用程序可能有几百种类型(即类),但有数千种类型实例。
运行时肯定知道每个变量的类型,但这并不意味着每个变量都伴随着它自己的所需类型信息副本。考虑到这一点,不需要特殊的字典或集合类,它们只是一个引用的集合。
按照MSDN List代表对象
的强类型列表当List<T>
构造函数用于其与默认容量创建一个list of T