Мне нужно вставить простое целое число в очередь.
По какой-то причине он всегда сворачивался по ссылке null
. Нужно ли инициализировать очередь? Как это сделать?
Это мой код.
Queue<int>[] OdafimColors = new Queue<int>[10];
OdafimColors[i].Enqueue(-1);
Это очень просто, я не могу понять, почему это не работает.
2 ответа
Вам нужно инициализировать каждый элемент в вашем массиве:
for(int i = 0; i<OdafimColors.Lenght; i++)
OdafimColors[i] = new Queue<int>();
Ваше определение не выделяет место для очередей. Он выделяет память для массива, и элементы равны нулю, пока вы их не инициализируете.
Я не думаю, что вы хотите, чтобы это был массив. Это делает его массивом очередей.
Вы наверняка захотите:
Queue<int> OdafimColors = new Queue<int>();
OdafimColors.Enqueue(-1);
http://msdn.microsoft.com/en-us/library/7977ey2c(v=vs.110).aspx
Похожие вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.