. Хотя такое решение возникающих проблем совершенно естественно, иногда возникают неудобства: например, при задании констант, определяющих путь к файлу, приходится каждый раз удваивать символ обратной косой черты. Это одна из причин, по которой появились @-константы. В @-константах все символы трактуются в полном соответствии с их изображением. Поэтому путь к файлу лучше задавать @-константой. Единственная проблема в таких случаях: как задать символ кавычки, чтобы он не воспринимался как конец самой константы. Решением является удвоение символа. Вот соответствующие примеры: //Два вида констант s1= "x50"; s2=@"x50"""; b1= (s1==s2); Console.WriteLine("s1={0}, s2={1}, b1={2}", s1,s2,b1); s1 = "c:\c#book\ch5\chapter5.doc"; s2 = @"c:c#bookch5chapter5.doc"; b1= (s1==s2); Console.WriteLine("s1={0}, s2={1}, b1={2}", s1,s2,b1); s1= ""A""; s2=@"""A"""; b1= (s1==s2); Console.WriteLine("s1={0}, s2={1}, b1={2}", s1,s2,b1); Взгляните на результаты работы приведенных фрагментов кода, полученные при вызове процедур TestDeclStrings и TestOpers.
Рис. 14.1. Объявления, константы и операции над объектами string Неизменяемый класс string В языке C# существует понятие неизменяемый (immutable) класс. Для такого класса невозможно изменить значение объекта при вызове его методов. Динамические методы могут создавать новый объект, но не могут изменить значение существующего объекта. К таким неизменяемым классам относится и класс String. Ни один из методов этого класса не меняет значения существующих объектов. Конечно, некоторые из методов создают новые значения и возвращают в качестве результата новые строки. Невозможность изменять значения строк касается не только методов. Аналогично, при работе со строкой как с массивом разрешено только чтение отдельных символов, но не их замена. Оператор присваивания из нашего последнего примера, в котором делается попытка изменить первый символ строки, недопустим, а потому закомментирован. //Неизменяемые значения s1= "Zenon"; ch1 = s1[0]; //s1[0]='L'; Статические свойства и методы класса String Таблица 14.1. Статические методы и свойства класса String | Метод | Описание | Empty | Возвращается пустая строка. Свойство со статусом read only | Compare | Сравнение двух строк. Метод перегружен. Реализации метода позволяют сравнивать как строки, так и подстроки. При этом можно учитывать или не учитывать регистр, особенности национального форматирования дат, чисел и т.д. |
Предыдущая страница |
Следующая страница |
|