C # Array Indexer - PullRequest
       50

C # Array Indexer

0 голосов
/ 18 октября 2018

Мне было интересно: как реализован индексатор массива C #?Вы можете индексировать массив C # практически всеми целочисленными значениями от ulong до sbyte. Внутренняя реализация просто приводит каждый раз к общему типу?

Чтобы было ясно, будет ли это:

ulong i = 10;
var o = myArray[i];

можно перевести как-то так:

ulong i =10;
var o = myArray[(int /*or whatver is the default type used*/)i];

?

1 Ответ

0 голосов
/ 18 октября 2018

Тип индексатора массива - целое число, поэтому да, значение будет преобразовано в int.Вы можете проверить это, изучив код IL.Для примера1013 *

Преобразует значение без знака на вершине стека оценки в собственное целое со знаком, создавая исключение OverflowException при переполнении.

...