Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю - Страница 77
- Предыдущая
- 77/642
- Следующая
int[] myInts = new int[3]; // Создать строковый массив из 100 элементов с индексами 0 - 99. string[] booksOnDotNet = new string[100]; Console.WriteLine();}Внимательно взгляните на комментарии в коде. При объявлении массива C# с использованием подобного синтаксиса число, указанное в объявлении, обозначает общее количество элементов, а не верхнюю границу. Кроме того, нижняя граница в массиве всегда начинается с
0int[] myInts = new int[3]012После определения переменной массива можно переходить к заполнению элементов от индекса к индексу, как показано ниже в модифицированном методе
SimpleArrays()static void SimpleArrays(){ Console.WriteLine("=> Simple Array Creation."); // Создать и заполнить массив из трех целочисленных значений. int[] myInts = new int[3]; myInts[0] = 100; myInts[1] = 200; myInts[2] = 300; // Вывести все значения. foreach(int i in myInts) { Console.WriteLine(i); } Console.WriteLine();}На заметку! Имейте в виду, что если массив объявлен, но его элементы явно не заполнены по каждому индексу, то они получат стандартное значение для соответствующего типа данных (например, элементы массива
boolfalseint0Синтаксис инициализации массивов C#
В дополнение к заполнению массива элемент за элементом есть также возможность заполнять его с применением синтаксиса инициализации массивов. Для этого понадобится указать значения всех элементов массива в фигурных скобках (
{}static void ArrayInitialization(){ Console.WriteLine("=> Array Initialization."); // Синтаксис инициализации массивов с использованием ключевого слова new. string[] stringArray = new string[] { "one", "two", "three" }; Console.WriteLine("stringArray has {0} elements", stringArray.Length); // Синтаксис инициализации массивов без использования ключевого слова new. bool[] boolArray = { false, false, true }; Console.WriteLine("boolArray has {0} elements", boolArray.Length); // Инициализация массива с применением ключевого слова new и указанием размера. int[] intArray = new int[4] { 20, 22, 23, 0 }; Console.WriteLine("intArray has {0} elements", intArray.Length); Console.WriteLine();}Обратите внимание, что в случае использования синтаксиса с фигурными скобками нет необходимости указывать размер массива (как видно на примере создания переменной
stringArraynewboolArrayВ случае объявления
intArray// Несоответствие размера и количества элементов!int[] intArray = new int[2] { 20, 22, 23, 0 };Понятие неявно типизированных локальных массивов
В главе 3 рассматривалась тема неявно типизированных локальных переменных. Как вы помните, ключевое слово var позволяет определять переменную, тип которой выводится компилятором. Аналогичным образом ключевое слово
varnewstatic void DeclareImplicitArrays(){ Console.WriteLine("=> Implicit Array Initialization."); // Переменная а на самом деле имеет тип int[]. var a = new[] { 1, 10, 100, 1000 }; Console.WriteLine("a is a: {0}", a.ToString()); // Переменная b на самом деле имеет тип doublet]. var b = new[] { 1, 1.5, 2, 2.5 }; Console.WriteLine("b is a: {0}", b.ToString()); // Переменная с на самом деле имеет тип string []. var c = new[] { "hello", null, "world" }; Console.WriteLine("c is a: {0}", c.ToString());- Предыдущая
- 77/642
- Следующая
