我听说C#存储变量的类型信息,包括变量的值。
我的问题是,如果我使用List<>
或Dictionary<>
对象,是包含在其中的每个对象的类型信息存储,还是只有一次?
我认为在Generics
的情况下,它只有一次,而在ArrayList
的情况下,它适用于每个项目。但是,我想问一下。
答案 0 :(得分:0)
如果您从逻辑上考虑它,运行时是否真的会为每个变量存储类型信息的副本以及变量本身?这将非常浪费!大多数应用程序可能有几百种类型(即类),但有数千种类型实例。
运行时肯定知道每个变量的类型,但这并不意味着每个变量都附带了自己所需类型信息的副本。考虑到这一点,不需要特殊的案例字典或集合类,它们只是一组引用。
答案 1 :(得分:0)
根据MSDN List表示强类型的对象列表
使用List<T>
构造函数时,会创建一个具有默认容量<{p>的list of T