Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю - Страница 77
- Предыдущая
- 77/642
- Следующая
int[] myInts = new int[3];
// Создать строковый массив из 100 элементов с индексами 0 - 99.
string[] booksOnDotNet = new string[100];
Console.WriteLine();
}
Внимательно взгляните на комментарии в коде. При объявлении массива C# с использованием подобного синтаксиса число, указанное в объявлении, обозначает общее количество элементов, а не верхнюю границу. Кроме того, нижняя граница в массиве всегда начинается с
0
int[] myInts = new int[3]
0
1
2
После определения переменной массива можно переходить к заполнению элементов от индекса к индексу, как показано ниже в модифицированном методе
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();
}
На заметку! Имейте в виду, что если массив объявлен, но его элементы явно не заполнены по каждому индексу, то они получат стандартное значение для соответствующего типа данных (например, элементы массива
bool
false
int
0
Синтаксис инициализации массивов 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();
}
Обратите внимание, что в случае использования синтаксиса с фигурными скобками нет необходимости указывать размер массива (как видно на примере создания переменной
stringArray
new
boolArray
В случае объявления
intArray
// Несоответствие размера и количества элементов!
int[] intArray = new int[2] { 20, 22, 23, 0 };
Понятие неявно типизированных локальных массивов
В главе 3 рассматривалась тема неявно типизированных локальных переменных. Как вы помните, ключевое слово var позволяет определять переменную, тип которой выводится компилятором. Аналогичным образом ключевое слово
var
new
static 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
- Следующая