Эндрю Троелсен - ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
- Название:ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
- Автор:
- Жанр:
- Издательство:Издательский дом Вильямс
- Год:2007
- Город:Москва • Санкт-Петербург • Киев
- ISBN:ISBN 5-8459-1124-9
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Эндрю Троелсен - ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание краткое содержание
В этой книге содержится описание базовых принципов функционирования платформы .NET, системы типов .NET и различных инструментальных средств разработки, используемых при создании приложений .NET. Представлены базовые возможности языка программирования C# 2005, включая новые синтаксические конструкции, появившиеся с выходом .NET 2.0, а также синтаксис и семантика языка CIL. В книге рассматривается формат сборок .NET, библиотеки базовых классов .NET. файловый ввод-вывод, возможности удаленного доступа, конструкция приложений Windows Forms, доступ к базам данных с помощью ADO.NET, создание Web-приложений ASP.NET и Web-служб XML. Книга содержит множество примеров программного кода, призванного помочь читателю в освоении предлагаемого материала. Программный код примеров можно загрузить с Web-сайта издательства.
ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Console.WriteLine("-› double.MinValue: {0}", double. MinValue);
Члены System.Boolean
Теперь рассмотрим тип данных System.Boolean. В отличие от C(++), в C# единственными возможными значениями для bool являются {true | false}. В C# вы не можете назначать типу bool импровизированные значения (например, -1, 0, 1), что считается (большинством программистов) правильным нововведением. С учетом этого должно быть понятно, почему System.Boolean не поддерживает свойства MinValue/MaxValue, а поддерживает TrueString/FalseString.
// В C# нет произвольных типов Boolean!
bool b = 0 ; // Недопустимо!
bool b2 = -1; // Также недопустимо!
bool b3 = true ; // Без проблем.
bool b4 = false ; // Без проблем.
Console.WriteLine("-› bool.FalseString: {0}", bool .FalseString);
Console.WriteLine("-› bool.TrueString: {0}", bool .TrueString);
Члены System.Char
Текстовые данные в C# представляются встроенными типами данных string и char. Все .NET-языки отображают текстовые типы в соответствующие базовые типы (System.String и System.Char). Оба эти типа в своей основе используют Unicode.
Тип System.Char обеспечивает широкие функциональные возможности, далеко выходящие за рамки простого хранения символьных данных (которые, кстати, должны помещаться в одиночные кавычки). Используя статические методы System.Char, вы можете определить, является ли данный символ цифрой, буквой, знаком пунктуации или чем-то иным. Для иллюстрации рассмотрим следующий фрагмент программного кода.
static void Main(string[] args) {
…
// Проверьте работу следующих операторов…
Console.WriteLine("-› char.IsDigit('К'): {0}", char. IsDigit('К'));
Console.WriteLine("-› char.IsDigit('9'): {0}", char. IsDigit('9'));
Console.WriteLine("-› char.IsLetter('10', 1): {0}", char. IsLetter("10", 1));
Console.WriteLine("-› char.IsLetter('p'): {0}", char. IsLetter('p'));
Console.WriteLine("-› char.IsWhiteSpace('Эй, там!', 3): {0}", char. IsWhiteSpace("Эй, там!", 3));
Console.WriteLine("-› char.IsWhiteSpace('Эй, там!', 4): {0}", char. IsWhiteSpace("Эй, там!", 4));
Console.WriteLine("-› char.IsLettetOrDigit('?'): {0}", char. IsLetterOrDigit('?'));
Console.WriteLine("-› char.IsPunctuation('!'): {0}", char. IsPunctuation('!'));
Console.WriteLine("-›char.IsPunctuation('›'): {0}", char .IsPunctuation('›'));
Console.WriteLine("-› char.IsPunctuation(','): {0}", char. IsPunctuation(','));
…
}
Как видите, для всех этих статических членов System.Char при вызове используется следующее соглашение: следует указать либо единственный символ, либо строку с числовым индексом, который указывает местоположение проверяемого символа.
Анализ значений строковых данных
Типы данных .NET обеспечивают возможность генерировать переменную того типа, который задается данным текстовом эквивалентом (т.е. выполнять синтаксический анализ). Эта возможность может оказаться чрезвычайно полезной тогда, когда требуется преобразовать вводимые пользователем данные (например, выделенные в раскрывающемся списке) в числовые значения. Рассмотрите следующий фрагмент программного кода.
static void Main(string[] args) {
…
bool myBool = bool. Parse("True");
Console.WriteLine("-› Значение myBool: {0}", myBool);
double myDbl = double. Parse("99,884");
Console.WriteLine("-› Значение myDbl: {0}", myDbl);
int myInt = int .Parse("8");
Console.WriteLine("-› Значение myInt: {0}", myInt);
Char myChar = char .Раrsе("w") ;
Console.WriteLine(''-› Значение myChar: {0}\n", myChar);
…
}
System.DateTime и System.TimeSpan
В завершение нашего обзора базовых типов данных позволите обратить ваше внимание на то, что пространство имен System определяет несколько полезных типов данных, для которых в C# не предусмотрено ключевых слов. Это, в частности, типы DateTime и TimeSpan (задачу исследования типов System.Guid и System.Void, которые среди прочих показаны на рис. 3.19, мы оставляем на усмотрение заинтересованных читателей).
Тип DateTime содержит данные, представляющие конкретные дату (месяц, день, год) и время, которые можно отформатировать различными способами с помощью соответствующих членов. В качестве простого примера рассмотрите следующий набор операторов.
static void Main (string[] args) {
…
// Этот конструктор использует (год, месяц, день)
DateTime dt = new DateTime(2004, 10, 17);
// Какой это день недели?
Console.WriteLine("День {0} – это (1}", dt.Date, dt.DayOfWeek);
dt.AddMonths(2); // Теперь это декабрь.
Console.WriteLine ("Учет летнего времени: {0}", dt.IsDaylightSavingTime());
…
}
Структура TimeSpan позволяет с легкостью определять и преобразовывать единицы времени с помощью различных ее членов, например:
static void Main(string[] args) {
…
// Этот конструктор использует (часы, минуты, секунды)
TimeSpan ts = new TimeSpan(4, 30, 0);
Console.WriteLine(ts);
// Вычтем 15 минут из текущего значения TimeSpan и распечатаем результат.
Console.WriteLine(ts.Subtract(new TimeSpan (0, 15, 0)));
…
}
На рис. 3.20 показан вывод операторов DateTime и TimeSpan.
Рис. 3.20. Использование типов DateTime и TimeSpan
Исходный код.Проект DataTypes размещен в подкаталоге, соответствующем главе 3.
Тип данных System.String
Ключевое слово string в C# является сокращенным обозначением типа System.String, предлагающего ряд членов, вполне ожидаемых от этого класса. В табл. 3.12 предлагаются описания некоторых (но, конечно же, не всех) таких членов.
Таблица 3.12. Некоторые члены System.String
| Член | Описание |
|---|---|
| Length | Свойство, возвращающее длину текущей строки |
| Contains() | Метод, применяемый для выяснения того, содержит ли текущий строковый объект данную строку |
| Format() | Статический метод, применяемый для форматировании строковых литералов с использованием примитивов (числовых данных и других строк) и обозначений типа {0}, уже встречавшихся ранее в этой главе |
| Insert() | Метод, используемый для получения копии текущей строки, содержащей добавляемые строковые данные |
| PadLeft() PadRight() | Методы, возвращающие копии текущей строки, дополненные указанными данными в качестве заполнителя |
| Remove() Replace() | Методы, используемые для получения копии строки с соответствующими модификациями (при удалении или замене символов) |
| Substring() | Метод, возвращающий строку, которая представляет подстроку текущей строки |
| ToCharArray() | Метод, возвращающий массив символов, из которых состоит текущая строка |
| ToUpper() ToLower() | Методы, создающие копию данной строки, представленную символами в верхнем или, соответственно, нижнем регистре |
Базовые операции со строками
Интервал:
Закладка: