Я использую .NET 8.0, C# 12.
Код: Выделить всё
using static System.Random;
uint[] numberList = new uint[8];
WriteLine(numberList.Length);
/*
for (uint i = 0; i < numberList.Length;i++) {
numberList[i] = (uint)new Random().Next(0,9);
}
*/
numberList = [1,1,1,2,3,8,8,7,10,10,11];
WriteLine(numberList.Length);
uint[] biggerNum = [0,0];
for (uint i = 0; i < numberList.Length; i++){
if (numberList[i] > biggerNum[0]) {
biggerNum[0] = numberList[i];
}
WriteLine("Value of i: " + i);
WriteLine("Value in the array: " + numberList[i]);
}
for (uint i = 0; i < numberList.Length; i++) {
if (numberList[i] == biggerNum[0]) biggerNum[1]++;
}
WriteLine(format:"The number: {0} \nRepeated: {1} times.",
arg0:biggerNum[0],
arg1:biggerNum[1]);
Я ожидал получить ошибку компиляции, но это сработало. Потом я подумал: "Может быть, компилятор просто распознал, что я использовал 11 значений, и изменил их размер при компиляции?"
Но нет, запустив код, я увидел, что на самом деле он был объявлен с размером 10 и позже
Код: Выделить всё
numberList = [1,1,1,2,3,8,8,7,10,10,11];
Я что-то упускаю? Я пытался использовать Gemini, чтобы узнать, следует ли изменить размер, но он продолжал говорить, что изменить размер массива невозможно, чего я и ожидал. Не нашел этого конкретно в документации.
Я знаю, что должен объявить как uint[] NumberList = [1,1,1,2,3,8,8,7,10,10,11];< /code> но это ведет себя так, как будто я скрываю массив, хотя я просто присваиваю значение (я знаю, это глупый способ).
Подробнее здесь: https://stackoverflow.com/questions/787 ... ge-its-siz
Мобильная версия