Симон Робинсон - 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
OnEvent(this, new EventArgs());
Атрибуты
Концепция атрибутов не имеет эквивалента в ANSI C++, однако атрибуты поддерживаются компилятором Microsoft C++ как специальное расширение Windows. В версии C# имеются классы .NET, которые выводятся из System.Attribute. Они могут применяться к различным элементам кода C# (классам, перечислениям, методам, параметрам и т.д.) для создания дополнительной документирующей информации в компилированной сборке. Кроме того, некоторые атрибуты распознаются компилятором C# и будут иметь влияние на компилированный код. Они включают следующие:
Атрибут Описание DllImport Указывает, что метод определен во внешней DLL. StructLayout Позволяет расположить содержимое структуры в памяти. Позволяет получить эквивалент union в C#. Obsolete Создает ошибку компилятора или предупреждение, если используется этот метод. Conditional Заставляет выполнить условную компиляцию. Этот метод и все ссылки на него будут игнорироваться, если присутствует определенный символ препроцессора.Существует большое число других атрибутов, а также возможно задать свои собственные специальные атрибуты. Использование атрибутов рассматривается в главах 6 и 7.
Согласно синтаксису атрибуты указываются непосредственно перед объектом, к которому они применимы, в квадратных скобках. Это такой же синтаксис, как у атрибутов Microsoft C++.
[Conditional("Debug")]
void DisplayValuesOfImportantVariables() {
// и т.д.
Директивы препроцессора
C# поддерживает директивы препроцессора таким же образом, как C++, за исключением того, что их значительно меньше. В частности, C# не поддерживает обычно используемую директиву C++ #include. (Она не требуется, так как в C# не используется предварительное объявление.)
Синтаксис директив препроцессора в C# такой же, как в C++. В C# поддерживаются следующие директивы:
Директива Значение #define/#undef Так же как в C++, за исключением того, что они должны появиться в начале файла, до кода C#. #if/#elif/#else/#endif То же самое, что в C++ #ifdef/#elif/#else/#endif. #line То же самое, что в C++ #line. #warning/#error То же самое, что в C++ #warning/#error. #region/#endregion Помечает блок кода как область. Области распознаются некоторыми редакторами (такими, как редактор VisualStudio.NET) и поэтому могут использоваться для улучшения компоновки кода, представленного пользователю при редактировании.Пpиложение B
C# для разработчиков Java
В "Искусстве войны" Сунь Цзы утверждает, что "необходимо рассматривать вещи большой важности с небольшим усилием, а вещи небольшой важности с большим усилием". Это может звучать странно, но автор хочет, видимо, сказать, что если заботиться о незначительных вещах, то важные вещи тогда позаботятся о себе сами. Как это применимо к C# и Java?
При первом взгляде на код C# может показаться, что он не слишком впечатляющий, так как обнаруживается отчетливое сходство между ним и Java. Однако, если вы ожидали каких-то существенных изменений, то правда состоит в том, что на самом деле существует не так уж много синтаксических различий. Пути двух языков расходятся во внутренних тонкостях таких вещей, как перегрузка операторов, индексаторы, делегаты, свойства и перечисления с контролем типов. При более внимательном рассмотрении можно понять, что в конце концов между ними существует большое различие. (Приведенные выше темы будут подробнее рассмотрены позже в этом приложении.)
В этом приложении мы сосредоточимся прежде всего на вопросе, важном для разработчиков Java: как можно использовать в C# опыт использования Java, а также подчеркнем свойства присущие C#, и рассмотрим, что C# делать не может. Здесь предполагается, что читатель хорошо знаком с Java, поэтому отсутствует подробное описание языка Java, за исключением некоторых существующих различий.
Основы
Одно из основных различий между C# и Java лежит не в самом языке, а в платформе, поверх которой они реализованы. Программам Java требуется для выполнения кода рабочая среда времени выполнения Java Runtime Environment. C# и, на самом деле, вся платформа .NET выполняются в среде Common Language Runtime.
Большинство свойств CLR, внутреннее управление памятью, согласованность среды, масштабируемость и независимость от базовой платформы отражены в JRE Java. В то время, как JRE ограничена исключительно одним языком Java, CLR предоставляет поддержку и интеграцию нескольких языков с помощью VOS (virtual object system — система виртуальных объектов), которая предоставляет богатую типами систему, предназначенную для реализации множества различных типов языков программирования. Исходный код Java можно компилировать в промежуточное состояние, называемое байт-кодом. Он может затем выполняться с помощью поставляемой виртуальной машины. CLR, наоборот, не предоставляет виртуальную машину. Код C# также компилируется в промежуточное состояние, называемое для удобства промежуточным языком (IL, Intermediate Language). Но код IL передается в управляемые CLR процессы выполнения или компиляторам JIT CLR, обычно называемым JITters, которые преобразуют по требованию разделы IL в собственный код.
Давайте рассмотрим известный пример "Hello, World!" на Java (который будет показан здесь без затенения):
public class Hello {
public static void main(String args[]) {
System.out.println("Hello world! This is Java Code!");
}
}
Соответствующий код C# для этого примера следующий (представлен на сером фоне):
public class Hello {
public static void Main(string[] args) {
System.Console.WriteLine("Hello world! This is C# code!");
}
}
Прежде всего можно заметить, что эти два кода очень похожи, по большей части различия незначительны (такие, как использование заглавных букв в string и Main и использование System.Console.WriteLine вместо System.out.println). Он является, с другой стороны, по-прежнему зависимым от регистра символов.
Необходимо отметить тип string, который в C# также может записываться с заглавной S — как String. Следовательно, приведенный выше код можно записать в следующем виде:
public class Hello {
public static void Main(String [] args) {
System.Console.WriteLine("Hello world! This is C# code!");
}
}
Можно заметить, что спецификатор ранга массива [] перемещен из позиции перед переменной args в примере Java в положение между типом string и переменной args в примере C#. В C# спецификатор ранга массива должен появляться перед именем переменной, так как массив является на самом деле типом данных, что указывается с помощью []:
// C#
int [] X; // массив целых чисел в C#
// пример java
int [] х; // массив целых чисел в java
int x[]; // массив целых чисел в java
Тот же самый код C# можно также представить следующим образом:
using System;
class Hello {
public static int Main() {
Console.WriteLine ("Hello world! This is C# code!");
return 0;
}
}
Как можно видеть, изменилось несколько элементов. Объявление string [] args в сигнатуре метода является в C# необязательным (хотя скобки должны стоять перед именем параметра), как и использование public при объявлении метода. Ключевое слово using аналогично по смыслу ключевому слову include в Java, и так как System является используемым по умолчанию включением в C#, первая строка позволяет нам опустить System, которое находилось перед Console.WriteLine. Поскольку мы используем в этом примере int вместо void, необходимо включить строку return 0;.
Блоки кода C# заключаются в фигурные кавычки, также как в Java. Можно сказать, что метод Main() является частью класса, так как он заключен в фигурные кавычки. Точкой входа в приложении C# является метод static Main, как требует компилятор. Необходимо отметить, что Java использует main() в нижнем регистре. Подчеркнем также, что только один класс в приложении может иметь Main. Модификатор доступа public (обсуждаемый позднее) объявляет метод доступным потребителям кода вне класса, пакета или приложения, и также, как и компилятор, требует сделать метод видимым.
Аналогично в Java ключевое слове static позволяет вызывать метод сначала без создания экземпляра класса. Для метода Main() можно выбрать в качестве возвращаемого типа значения void или int. void определяет, что метод не возвращает значение, a int определяет, что он возвращает целое значение.
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!
Похожие книги на "C# для профессионалов. Том II"
Книги похожие на "C# для профессионалов. Том II" читать онлайн или скачать бесплатно полные версии.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Отзывы о "Симон Робинсон - C# для профессионалов. Том II"
Отзывы читателей о книге "C# для профессионалов. Том II", комментарии и мнения людей о произведении.