Преобразования строк в число. Класс Convert

Класс Convert, определенный в пространстве имен System, играет важную роль, обеспечивая необходимые преобразования между различными типами. Методыкласса Convert поддерживают общий способ выполнения преобразований между типами. Класс Convert содержит 15 статических методов вида To<Type> (ToBoolean(),...ToUInt64()), где Type может принимать значения от Boolean до UInt64 для всех встроенных типов, перечисленных в таблице 1 за исключением типа object. Все методы To<Type> класса Convert перегружены и каждый из них имеет, как правило, более десятка реализаций с аргументами разного типа. Так что фактически эти методы задают все возможные преобразования между всеми встроенными типами языка C#.

public void FromStringTest() {

s ="Введите возраст "; Console.WriteLine(s);

s1 = Console.ReadLine(); ux = Convert.ToUInt32(s1);

WhoIsWho("Возраст: ",ux);

Console.WriteLine("Введите зарплату ");

dy = Convert.ToDouble(Console.ReadLine());

WhoIsWho("Зарплата: ",dy);

}

 

Данные, читаемые с консоли методом ReadLine или Read, всегда представляют собой строку, которую затем необходимо преобразовать в нужный тип.

Ссылочные типы:

Массивы в C#

Массивом называют упорядоченную совокупность элементов одного типа. Число индексов характеризует размерность массива. При объявлении массива границы задаются выражениями. Если все границы заданы константными выражениями, то число элементов массива известно в момент его объявления и ему может быть выделена память еще на этапе трансляции. Такие массивы называются статическими. Если же выражения, задающие границы, зависят от переменных, то такие массивы называются динамическими, поскольку память им может быть отведена только динамически в процессе выполнения программы, когда становятся известными значения соответствующих переменных.

Массивы в языке C# относятся к ссылочным типам, и память им отводится динамически в "куче". В языке C#, соблюдая преемственность, сохранены одномерные массивы и массивы массивов. В дополнение к ним в язык добавлены многомерные ступенчатые массивы.

Определение одномерных массивов:

int[] k; //k – одномерный массив

k=new int [3]; //Определяем массив из 3-х целых

k[0]=-5; k[1]=4; k[2]=55; //Задаем элементы массива

 

Элементы массива можно задавать сразу при объявлении:

int[] k = {-5, 4, 55};

public void TestDynAr() {

Console.WriteLine("Введите число элементов массива ");

int size = Int32.Parse(Console.ReadLine());

int[] A1 = new int[size];

}

 

Определение многомерных массивов:

 

int[,] k = new int [2,3];

 

Обратите внимение, что пара квадратных скобок только одна. Естественно, что в нашем примере у массива 6 (=2*3) элементов (k[0,0] - первый, k[1,2] - последний).

Аналогично мы можем задавать многомерные массивы. Вот пример трехмерного массива:

int[,,] k = new int [10,10,10];

 

А вот так можно сразу инициализировать многомерные массивы:

int[,] k = {{2,-2},{3,-22},{0,4}};

 

Приведенные выше примеры многомерных массивов называются прямоугольными. Если их представить в виде таблицы (в двумерном случае), то массив будет представлять из себя прямоугольник.

Определение ступенчатых массивов:

//Объявляем 2-мерный ступенчатый массив

int[][] k = new int [2][];

//Определяем 0-й элемент нашего ступенчатого массива в нем 3 элемента

k[0]=new int[3];

//Определяем 1-й элемент нашего ступенчатого массива в нем 4 элемента

k[1]=new int[4];

k[1][3]=22; //записываем 22 в последний элемент массива

 

Обратите внимание, что у ступенчатых массивов мы задаем несколько пар квадратных скобок (столько, сколько размерность у массива).

 

Таблица 1.2 – Создание ступенчатых массивов

Объявление и инициализация значениями Объявление и инициализация нулевыми значениями Объявление и инициализация нулевыми значениями
int[][] jagger = new int[3][] { new int[] {5,7,9,11}, new int[] {2,8}, new int[] {6,12,4} }; int[][] jagger1 = new int[3][] { new int[4], new int[2], new int[3] }; int[][] jagger2 = { new int[4], new int[2], new int[3] };

 

Массив jagger имеет всего два уровня. Можно считать, что у него три элемента, каждый из которых является массивом. Для каждого такого массива необходимо вызвать конструктор new, чтобы создать внутренний массив. В первом случае элементы внутренних массивов получают значения, будучи явно инициализированы константными массивами. Во втором и третьем случае элементы внутренних массивов получают нулевые значения.

Еще одно важное замечание - динамические массивы возможны и здесь. В общем случае, границы на любом уровне могут быть выражениями, зависящими от переменных. Более того, допустимо, чтобы массивы на нижнем уровне были многомерными.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: