【发布时间】:2018-10-18 10:28:50
【问题描述】:
我想知道:C# 数组索引器是如何实现的?
您可以使用从 ulong 到 sbyte 的基本上每个整数值来索引 C# 数组,内部实现是否每次都简单地转换为通用类型?
要明确的是:
ulong i = 10;
var o = myArray[i];
被翻译成类似:
ulong i =10;
var o = myArray[(int /*or whatver is the default type used*/)i];
?
【问题讨论】:
-
祝你在源代码中找到它。
-
@Zohar:您可能应该链接到 JIT 中 IL 指令的实现,因为这就是那里发生的事情,而不是对
System.Array的方法调用。 -
请注意,检查实际上并没有被执行。 JiT 和一般 IL 优化确实有助于保持低负载:blogs.msdn.microsoft.com/clrcodegeneration/2009/08/13/…
-
谢谢大家!