- •Преимущества Microsoft.Net
- •Понятия приложения, проекта, решения
- •Создание первого проекта
- •Программирование на c#. Состав языка
- •Типы данных
- •Переменные и константы
- •Int age;
- •Организация ввода-вывода данных. Форматирование.
- •Вывод данных
- •Ввод данных
- •Операции
- •Выражения и преобразование типов
- •Int-long, float, double, decimal
- •Функции работы с символами и строками.
- •Символы char
- •Неизменяемые строки string
- •Изменяемые строки
- •Операторы ветвления
- •Оператор выбора switch.
- •Операторы цикла
- •Цикл с предусловием while
- •Цикл с постусловием do while
- •Операторы безусловного перехода
- •Методы: основные понятия
- •Перегрузка методов
- •Обработка исключений
- •Оператор try
- •Операторы checked и unchecked
- •Массивы
- •Многомерные массивы
- •Ступенчатые массивы
- •Оператор foreach и его использование при работе с массивами
- •Регулярные выражения
- •Метасимволы в регулярных выражениях
- •Поиск в тексте по шаблону
- •Редактирование текста
- •Работа с файловой системой
- •Работа с каталогами Абстрактный класс FileSystemInfo
- •Класс DirectoryInfo
- •Класс Directory
- •Работа с файлами Класс Filelnfo
- •Класс File
- •Properties Window
Изменяемые строки
Чтобы создать строку, которую можно изменять, в С# предусмотрен класс StringBuilder, определенный в пространстве имен System.Text. Объекты этого класса всегда объявляются с явным вызовом конструктора класса (через операцию new) . Примеры создания изменяемых строк:
StringBuilder a =new StringBuilder(); //создание пустой строки, размер по умолчанию 16 символов
//инициализация строки и выделение необходимой памяти
StringBuilder b = new StringBuilder("abcd");
//создание пустой строки и выделение памяти под 100 символов
StringBuilder с = new StringBuilder(100);
//инициализация строки и выделение памяти под 100 символов
StringBuilder d = new StringBuilder("abcd", 100);
//инициализация подстрокой "bcd", и выделение памяти под 100 символов
StringBuilder d = new StringBuilder("abcd", 1, 3,100);
Основные элементы класса приведены в таблице:
Название |
Вид |
Описание |
Append |
Экземплярный метод |
Добавление данных в конец строки. Разные варианты метода позволяют добавлять в строку величины любых встроенных типов, массивы символов, строки и подстроки string. |
AppendFormat |
Экземплярный метод |
Добавление форматированной строки в конец строки |
Capacity |
свойство |
Получение и установка емкости буфера. Если устанавливаемое значение меньше текущей длины строки или больше максимального, то генерируется исключение ArgumentOutOfRangeException |
Insert |
Экземплярный метод |
Вставка подстроки в заданную позицию |
Length |
изменяемое свойство |
Возвращает длину строки. Присвоение ему значения 0 сбрасывает содержимое и очищает строку |
MaxCapacity |
неизменное свойство |
Возвращает наибольшее количество символов, которое может быть размещено в строке |
Remove |
Экземплярный метод |
Удаление подстроки из заданной позиции |
Replace |
Экземплярный метод |
Замена всех вхождений заданной подстроки или символа новой подстрокой или символом |
ToString |
Экземплярный метод |
Преобразование в строку типа string |
Chars |
изменяемое свойство |
Возвращает из массива или устанавливает в массиве символ с заданным индексом. Вместо него можно пользоваться квадратными скобками [] |
Equals |
Экземплярный метод |
Возвращает true, только если объекты имеют одну и ту же длину и состоят из одних и тех же символов |
CopyTo |
Экземплярный метод |
Копирует подмножество символов строки в массив char |
Операторы ветвления
Ветвление — это способ управлять тем, какая строка кода должна выполняться следующей. Строка, на которую следует передать управление, определяется с помощью некоторого условного оператора. Работа такого условного оператора основана на выполнении сравнения контрольного значения и одного или нескольких возможных значений с использованием булевой логики.
В этом разделе мы рассмотрим три способа ветвления, имеющихся в С#:
• Тринарный оператор
• Оператор if
• Оператор switch
Тринарный оператор
<проверка> ?<результатЕслиИстина> :<результатЕслиЛожь>
В данном случае условие <проверка> вычисляется для получения логического значения, и в зависимости от него результатом выполнения этого оператора будет<результатЕслиИстина> ИЛИ <результатЕслиЛожь>.
Мы можем использовать этот оператор следующим образом:
string resultString = (mylnteger < 10) ? "Меньше 10" : "Больше или равно 10";
Результатом выполнения тринарного оператора будет одна из двух строк, каждая из которых может быть присвоена переменной resultString. Выбор того, какую именно из этих двух строк следует присвоить, производится путем сравнения значения переменной my integer с 10, причем если значение переменной меньше 10, присваивается первая строка, а если больше или равно 10 — вторая. Например, в том случае, если значение переменной mylnteger равняется 4, переменной resultString будет присвоена строка 'Меньше 10".
.
Условный оператор if
Условный оператор ifиспользуется для разветвления процесса обработки данных на два направления. Он может иметь одну из форм:сокращеннуюилиполную.
Форма сокращенного оператора if:
if (B) S;
где В – логическое или арифметическое выражение, истинность которого проверяется;S– оператор: простой или составной.
При выполнении сокращенной формы оператора ifсначала вычисляется выражениеB, затем проводится анализ его результата: еслиBистинно, то выполняется операторS; еслиBложно, то операторSпропускается. Таким образом, с помощью сокращенной формы оператораifможно либо выполнить оператор S, либо пропустить его.
Форма полного оператора if:
if(B)S1;elseS2;
где B– логическое или арифметическое выражение, истинность которого проверяется;S1, S2- оператор: простой или составной.
if {<условие>)
{
код, который выполняется, если вычисление <условия> дает результат true>;
}
Else
{
код, который выполняется, если вычисление <условия> дает результат £alse>;
}
При выполнении полной формы оператора ifсначала вычисляется выражениеB, затем анализируется его результат: еслиBистинно, то выполняется операторS1, а операторS2пропускается; еслиBложно, то выполняется операторS2, аS1– пропускается. Таким образом, с помощью полной формы оператораifможно выбрать одно из двух альтернативных действий процесса обработки данных.
Рассмотрим несколько примеров записи условного оператора if:
if(a> 0)x=y;// Сокращенная форма c простым оператором
if(++i) {x=y;y=2*z;}// Сокращенная форма c составным оператором
if(a> 0 || b<0)x=y;elsex=z;// Полная форма с простым оператором
if(i+j-1) {x= 0;y= 1;}else{x=1;y:=0;}// Полная форма с составными операторами
Рассмотрим пример использования условного оператора.
static void Main()
{
Console.Write("x= ");
float x = float.Parse(Console.ReadLine());
Console.Write("y=");
float y = float.Parse(Console.ReadLine());
if (x < y ) Console.WriteLine("min= "+x);
else Console.WriteLine("min= "+y);
}
Результат работы программы: x y min
0 0 0
1 -1 -1
-2 2 -2