Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Стрічкові константи
Без констант не обійтися. В C# існують два види стрічкових констант: · звичайні константи, які представляють рядок символів, укладені в лапки; · @-константи, задані звичайною константою з попереднім знаком @. У звичайних константах деякі символи інтерпретуються особливим чином. Зв'язано це насамперед з тим, що необхідно вміти задавати в рядку не друкують символи, що, такі, як, наприклад, символ табуляції. Виникає необхідність задавати символи їхнім кодом - у вигляді escape-послідовностей. Для всіх цих цілей використається комбінація символів, що починається символом " \" - зворотна коса риса. Так, пари символів: " \n", " \t", " \\", " \" " задають відповідно символ переходу на новий рядок, символ табуляції, сам символ зворотної косої риски, символ лапок, що вставляє в рядок, але не сигналізує про її закінчення. Комбінація " \xNNNN" задає символ, обумовлений шістнадцятирічним кодом NNNN. Хоча таке рішення виникаючих проблем зовсім природно, іноді виникають незручності: наприклад, при завданні констант, що визначають шлях до файлу, доводиться щораз подвоювати символ зворотної косої риски. Це одна із причин, по якій з'явилися @-константи. В @-константах всі символи трактуються в повній відповідності з їхнім зображенням. Тому шлях до файлу краще задавати @-константою. Єдина проблема в таких випадках: як задати символ лапок, щоб він не сприймався як кінець самої константи. Рішенням є подвоєння символу. От відповідні приклади: //Два види констант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#book\ch5\chapter5.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. Рис. 15.4 Оголошення, константи й операції над об'єктами string
|