2016-05-20 2 views
0

Я хотел бы создать массив с индексами Int16, каждый из которых будет SByte.Создание массива с различными типами данных для индекса и элементов

Если это возможно, как бы я хотел структурировать свое заявление, чтобы достичь этого? Это то, что у меня есть до сих пор.

//This saves the array size after creation for reference by other functions in the class 
public static Int16 ArraySize = 0; 

//input array size input by user from UI, min 0, max 1024 
public static void InitArray(Int16 inputArraysize) 
{ 
    sbyte[] Arrayarray = new sbyte[inputArraysize]; 
    Array.ArraySize = inputArraysize; 
    Debug.output("RAM ARRAY CREATED"); 
} 
+0

Что вы просите, это не массив. – lgaud

+0

Можете ли вы объяснить, _why_ вы хотите изменить тип индексирования массива .NET? – CodeCaster

+0

Я планирую моделировать RAM с массивом, в некоторой степени; Я хотел бы иметь возможность индексировать значения больше 127, однако, следовательно, используется 16-разрядная «адресная шина». – John

ответ

1

Из ваших комментариев, вы, кажется, думаете, что тип массива и его индексный тип связаны.

Это не так. Тип индекса не зависит от типа массива. Arrays are always indexable with positive integers from 32 bits and upwards.

Возможно, вы не сможете выделять массивы размером 2 ГБ и более.

+0

Я считаю, что я неправильно отношу эти (как вы полагаете) из-за моих попыток передать значение размера как 'SByte'; Есть ли способ передать его и создать значение размером более 127, в таком случае? – John

+0

Вы передаете 'inputArraySize' как' Int16' (я не знаю почему), поэтому вы можете создать массив из максимум 32767 элементов. – CodeCaster

+1

Ах, я вижу: - Я считаю, что моя проблема лежит в другом месте; Большое спасибо за вашу помощь. – John

Смежные вопросы