Симон Робинсон - C# для профессионалов. Том II

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.
Жалоба
Напишите нам, и мы в срочном порядке примем меры.
Описание книги "C# для профессионалов. Том II"
Описание и краткое содержание "C# для профессионалов. Том II" читать бесплатно онлайн.
Платформа .NET предлагает новую среду, в которой можно разрабатывать практически любое приложение, действующее под управлением Windows, а язык C# — новый язык программирования, созданный специально для работы с .NET.
В этой книге представлены все основные концепции языка C# и платформы .NET. Полностью описывается синтаксис C#, приводятся примеры построения различных типов приложений с использованием C# — создание приложений и служб Windows, приложений и служб WWW при помощи ASP.NET, а также элементов управления Windows и WWW Рассматриваются общие библиотеки классов .NET, в частности, доступ к данным с помощью ADO.NET и доступ к службе Active Directory с применением классов DirectoryServices.
Эта книга предназначена для опытных разработчиков, возможно, имеющих опыт программирования на VB, C++ или Java, но не использовавших ранее в своей работе язык C# и платформу .NET. Программистам, применяющим современные технологии, книга даст полное представление о том, как писать программы на C# для платформы .NET.
• Все особенности языка C#
• C# и объектно-ориентированное программирование
• Приложения и службы Windows
• Создание web-страниц и web-служб с помощью ASP NET
• Сборки .NET
• Доступ к данным при помощи ADO NET
• Создание распределённых приложений с помощью NET Remoting
• Интеграция с COM, COM+ и службой Active Directory
Переменные
Определения переменных следуют в основном тем же образцам в C#, что и в C++:
int NCustomers, Result;
double DistanceTravelled;
double Height = 3.75;
const decimal Balance = 344.56M;
Хотя, как можно было ожидать, некоторые из типов различны. Как было замечено ранее, переменные могут быть объявлены только локально в методе или как члены класса. C# не имеет эквивалент, глобальных или статических (то есть с областью действия, ограниченной файлом) переменных в C++. Как уже говорилось, переменные, являющиеся членами класса, называются в C# полями.
Отметим, что C# также строго различаем типы данных, хранимые в стеке (типы данных значений) и хранимые в куче (ссылочные типы данных). Мы позже рассмотрим этот вопрос более подробно.
Базовые типы данных
Как и в C++, C# имеет ряд предопределенные типов данных, и можно определять собственные типы данных, такие как классы или структуры.
В C# и C++ предопределенные типы данных несколько различаются. Типы данных для C# приведены в таблице:
Имя Содержит Символ sbyte 8-битовое целое число со знаком byte 8-битовое целое число без знака short 16-битовое целое число со знаком ushort 16-битовое целое число без знака int 32-битовое целое число со знаком uint 32-битовое целое число без знака U long 64-битовое целое число со знаком L ulong 64-битовое целое число без знака UL float 32-битовое значение с плавающей точкой со знаком F double 64-битовое значение с плавающей точкой со знаком D bool true или false char 16-битовый символ Unicode '' decimal Число с плавающей точкой с 28 значащими цифрами M string Множество символов Unicode переменной длины "" object Используется там, где не определен тип данных. Ближайшим эквивалентом в C++ является void*, за исключением того, что object не является указателем.В приведенной выше таблице символ в третьем столбце указывает букву, которая может быть помещена после числа, чтобы указать его тип явно, например, 28UL означает число 28, хранимое как long без знака. Как и в случае C++, одиночные кавычки используются для обозначения символов, двойные кавычки для строк. Однако в C# символы всегда являются символами Unicode, а строки являются определенным ссылочным типом, а не просто массивом символов.
Типы данных в C# используются более аккуратно, чем в C++. Например, в C++ обычно ожидается, что int будет занимать 2 байта (16 битов), но определение ANSI C++ разрешает, чтобы это зависело от платформы. Следовательно, в Windows int в C++ занимает 4 байта, столько же сколько и long. Это очевидно вызывает достаточно много проблем совместимости при переносе программ C++ между платформами. С другой стороны, в C# каждый предопределенный тип данных (за исключением string и object) имеет явное определение занимаемой памяти.
Так как размер каждого из примитивных типов (примитивным типом является любой из приведенных выше, за исключением string и object) фиксирован в C#, то существует меньшая потребность в операторе sizeof, хотя он и есть в C#, но допустим только в ненадежном коде (как будет описано позже).
Несмотря на то, что многие имена в C# аналогичны именам C++ и существует достаточно интуитивно понятное отображение между многими из соответствующих типов, некоторые вещи отличаются синтаксически. В частности, signed и unsigned не являются ключевыми словами в C# (в C++ можно использовать эти ключевые слова, также как long и short для модификации других типов данных (например, unsigned long, short int). Такие модификации недопустимы в C#, поэтому приведенная выше таблица является фактически полным списком предопределенных типов данных.
Базовые типы данных как объекты
В отличие от C++ (но как в Java) базовые типы данных в C# трактуются как объекты, чтобы вызывать на них некоторые методы. Например, в C# возможно преобразование целого числа в строку следующим образом.
int I = 10;
string Y = I.ToString();
Можно даже написать:
string Y = 10.ToString();
Тот факт, что базовые типы данных рассматриваются как объекты, показывает тесную связь между C# и библиотекой базовых классов .NET. C# компилирует базовые типы данных, отображая каждый из них в один из базовых классов, например, string отображается в System.String, int в System.Int32 и т.д. Поэтому на самом деле в C# все является объектом. Однако отметим, что это применимо только для синтаксических целей. В реальности при выполнении кода эти типы реализуются как описанные ниже типы промежуточного языка, поэтому нет потери производительности, связанной с интерпретацией базовых типов как объектов. Здесь не будут перечисляться все методы, доступные для базовых типов данных, так как подробности представлены в MSDN. Однако необходимо отметить следующие особенности:
□ Все типы имеют метод ToString(). Для базовых типов данных он возвращает строковое представление их значения.
□ char содержит большое число свойств, которые предоставляют информацию о своем содержимом (IsLetter, IsNumber и т.д.), а также методы для выполнения преобразований (ToUpper(), ToLower()).
□ string имеет очень большое число методов и свойств. Строки будут рассмотрены отдельно.
Также доступен ряд статических методов членов и свойств. Они включают следующие:
□ Целые типы имеют MinValue и MaxValue, чтобы указать минимальное и максимальное значения, которые могут содержаться в типе данных.
□ Типы данных float и double также имеют свойство Epsilon, которое указывает наименьшее возможное значение больше нуля, которое может в нем содержаться.
□ Отдельные значения — NaN (не число, которое не определено), PositiveInfinity (положительная бесконечность) и NegativeInfinity (отрицательная бесконечность) определены для float и double. Результаты вычисления будут возвращать эти значения в подходящих ситуациях, например, деление положительного числа на ноль будет иметь в результате PositiveInfinity, в то время как деление нуля на нуль создаст NaN. Эти значения доступны как статические свойства.
□ Многие типы, включая все числовые, имеют статический метод Parse(), который позволяет преобразование из строки: double D = double.Parse("20.5").
Отметим, что статические методы в C# вызываются определением имени типа данных: int.MaxValue и float.Epsilon.
Преобразования базовых типов данных
Преобразование типа является процессом, в котором значение, хранящееся в переменной одного типа данных преобразуется в значение другого типа данных. В C++ это можно сделать явно или неявно:
float f1 = 40.0;
long l1 = f1; // неявно
short s1 = (short)l1; // явно, старый стиль C
short s2 = short(f1); // явно, новый стиль C++
Если преобразование типа определяется явно, то это означает, что в коде явно указывается имя типа данных назначения. C++ позволяет написать явные преобразования типа любым из двух стилей — старым стилем С, в котором имя типа данных помещалось в скобки, или новым стилем, в котором имя переменной помещается в скобки. Оба стиля показаны выше и являются вопросом синтаксического предпочтения, выбор стиля не оказывает никакого влияния на код. В C++ допустимы преобразования любых базовых типов данных. Однако, если существует риск потери данных в связи с тем, что тип данных назначения имеет меньший диапазон значений, чем исходный тип данных, то компилятор может послать предупреждение в зависимости от настройки уровня предупреждений. В приведенном выше примере неявное преобразование типа может вызвать потерю данных, поэтому компилятор будет обычно порождать предупреждение. Явное определение преобразования является на самом деле способом сообщить компилятору что данное действие обдуманно, в результате это обычно приводит к подавлению всех предупреждений.
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!
Похожие книги на "C# для профессионалов. Том II"
Книги похожие на "C# для профессионалов. Том II" читать онлайн или скачать бесплатно полные версии.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Отзывы о "Симон Робинсон - C# для профессионалов. Том II"
Отзывы читателей о книге "C# для профессионалов. Том II", комментарии и мнения людей о произведении.