Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции C# Часть1 A5.doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
1 Мб
Скачать
☆

Класс Convert

Мы уже знаем о существовании метода ToInt32, осуществляющего преобразование в целое число. Кроме того, в этом классе имеется ещё ряд методов преобразования: ToBoolean, ToByte, ToChar, ToDateTime, ToDecimal, ToDouble, ToSingle, ToString. Этот (неполный!) перечень методов позволяет сделать следующие выводы:

  1. Система основных типов языка в основном унаследована от языка С++, однако, в ней появились и новшества.

Как уже говорилось, в C# имеется полноценный логический тип данных Boolean.

К числу основных типов в C# добавился тип DateTime, позволяющий оперировать календарными датами и временем.

Тип Decimal это разновидность вещественного типа данных используемого, когда важно избежать накопления погрешностей вычислений.

Два основных вещественных типа языка C++ (float и double) в C# «поменялись местами» - стандартным теперь является Double. Это означает, что вещественные константы, записываемые обычным образом, относятся к типу Double. Поэтому оператор a = 0.5 будет признан компилятором ошибочным (несовместимость типов в присваивании), если переменная a имеет тип float.

Преобразованием в тип float занимается метод ToSingle.

  1. Каждый из методов преобразования является перегруженным. Это позволяет применять метод с одним и тем же именем для преобразования разнотипной исходной информации. Например:

Convert.ToInt32(3.2);

Convert.ToInt32(false);

Convert.ToInt32(“Hello”);

В связи с этим полезно будет выполнть следующее задание: написать программу, проверяющую результаты применения методов преобразования к различным типам данных. Выявить комбинации типов, приводящие к ошибкам и дать этому объяснение.

Строковый тип данных string (класс String)

Работу со строками символов в .NET очень удобно осуществлять с помощью типа данных String из пространства имен System. Переменные этого типа можно описывать также с помощью ключевого слова string.

Переменная строкового типа может получить свое значение несколькими способами:

  1. Присваиванием строковой константы или строкового выражения:

String name;

name=”John”;

name=”Mr. ” + name; //для строк + действует как конкатенация

  1. Путем ввода с клавиатуры

name=Console.Readline();

Сравнивать строки можно операциями == (равно) и != (не равно). При этом проверяется точное совпадение содержимого этих строк. Однако применять для сравнения операции <, >, >= и <= нельзя. Для таких сравнений существует специальный метод Compare в классе String.

В C# сохранилась возможность работать со строкой как с массивом символов.

В следующем фрагменте программы проиллюстрированы некоторые из перечисленных возможностей:

string s1,s2;

s1 = Console.ReadLine().ToLower();

s2 = ""; //строка может быть пустой

for (int i = 0; i < s1.Length; i++) s2 += s1[s1.Length-i-1];

Console.WriteLine(s2);

Здесь сначала описываются две строковые переменные s1 и s2. Далее с помощью метода ToLower вводимая с клавиатуры строка переводится в нижний регистр и результат присваивается переменной s1. Обратите внимание на цепочку вызовов методов Console.ReadLine().ToLower(). Сначала ReadLine возвращает строку, а затем ToLower переводит ее в нижний регистр.

Далее выполняется цикл, переворачивающий содержимое строки s1. Перевернутое содержимое оказывается в строке s2. Обратите внимание на то, что для определения длины строки используется Length. Вы не видите спика параметров в круглых скобках после Length. Это значит, что Length не является методом, а свойством класса. Позже мы обсудим свойства подробнее.

Обращение к символам строки с помощью индексации возможно только для чтения. Попытка изменить строку с помощью индексации приводит к ошибке компиляции:

s[0]=’!’; //Ошибка

Класс String предлагает обширный набор полезных методов. В следующей таблице указаны некоторые из них.

Таблица членов класса String

Член

Описание

Length

Свойство, возвращающее длину текущей строки

Compare() и CompareTo()

Методы, сравнивающие два заданных объекта String и возвращающие целое число (0,1,-1), которое показывает их связь друг с другом в порядке сортировки

Contains()

Метод, применяемый для выяснения того, содержит ли текущий строковый объект данную строку

Copy()

Метод, создающий новый экземпляр String, имеющий то же значение, что и заданный экземпляр String

CopyTo()

Метод, копирующий заданное число знаков начиная с указанной позиции в этом экземпляре до указанной позиции в массиве знаков Юникода

EndsWith() и StartsWith()

Методы, определяющие, совпадает ли конец (начало) экземпляра String с указанной строкой

Format()

Метод, который заменяет каждый элемент формата в указанном объекте String текстовым эквивалентом значения соответствующего объекта

IndexOf()

Метод, возвращающий индекс первого вхождения String или одного или нескольких знаков в данной строке

IndexOfAny()

Метод, возвращающий индекс первого обнаруженного в данном экземпляре знака из указанного массива знаков Юникода

Insert()

Метод, используемый для получения копии текущей строки, содержащей добавляемые строковые данные

Join()

Метод, который вставляет заданный разделитель типа String между элементами заданного массива String, создавая одну сцепленную строку

LastIndexOf()

Возвращает индекс последнего вхождения указанного знака Юникода или String в пределах данного экземпляра

LastIndexOfAny()

Возвращает индекс последнего вхождения в данном экземпляре какого-либо одного или нескольких знаков, указанных в массиве знаков Юникод

PadLeft() и PadRight()

Выравнивает знаки в данном экземпляре по левому (правому) краю, добавляя справа (слева) пробелы или указанные знаки Юникода до указанной общей длины

Remove()

Replace()

Методы, используемые для получения копии строки с соответствующими модификациями (при удалении или замене символов)

Split()

Возвращает строковый массив, содержащий подстроки данного экземпляра, разделенные элементами заданной строки или массива знаков Юникода

Substring()

Метод, возвращающий строку, которая представляет подстроку текущей отроки

ToCharArray()

Метод, возвращающий массив символов, из которых состоит текущая строка

ToUpper()

ToLower()

Методы, создающие копию данной строки, представленную символами в верхнем или, соответственно, нижнем регистре

Trim()

Удаляет все начальные и конечные вхождения заданных наборов знаков из текущего объекта String

TrimEnd() и TrimStart()

Удаляет все конечные (начальные) вхождения набора знаков, заданного в виде массива, из текущего объекта String

Рассмотрим подробнее использование некоторых методов класса String.