gpt4 book ai didi

c# - 数组在 CLR 中有直接支持

转载 作者:太空狗 更新时间:2023-10-29 22:22:44 24 4
gpt4 key购买 nike

在 Jon Skeet 的“C# 深入”中,我正在阅读(第 511 页):

All arrays derive from System.Array, and they're the only collections with direct support in the CLR (My emphasis).

我想知道这到底是什么意思,尤其是对于没有这种支持的类型。所有没有这种支持的类型都是从 CLR 在解释 IL 时支持的类型组装而来的吗?没有此支持的类型是否不为 CLR“所知”?

也在第书的512:

The C# compiler has built-in support for arrays in a number of ways.

这是否以某种方式与数组类型在 CLR 中的直接支持相关,或者这两个独立的事物完全相关?

最佳答案

如前所述,数组存在于 CLR 的深处。有用于与它们交互的 IL 指令 ( ldelem.*/stelem.* )。它们早于泛型,但允许根据需要创建不同类型的数组。其他集合类型并非如此 - 例如,List<T>是存在于数组之上 的包装器。 CLR 不需要 List<T> 的任何特殊知识- 只是访问现有数组内容或分配新数组的常规 IL。集合的另一种主要形式是链表(和类似的;树等)——但同样,这些不需要特殊支持——这些只是通过引用连接在一起的对象。

关于c# - 数组在 CLR 中有直接支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19703991/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com