Симон Робинсон - C# для профессионалов. Том II
- Название:C# для профессионалов. Том II
- Автор:
- Жанр:
- Издательство:Лори
- Год:2003
- Город:Москва
- ISBN:5-85582-187-0
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Симон Робинсон - 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# для профессионалов. Том II - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
В этом приложении мы сосредоточимся прежде всего на вопросе, важном для разработчиков 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
определяет, что он возвращает целое значение.
Идентификаторы
Ключевые слова, рассматриваемые в следующем разделе, не могут служить идентификаторами ни в Java, ни в C#, однако в C# можно использовать ключевые слова как идентификаторы, помещая перед ними символ @
. Отметим, что это исключение имеет отношение только к ключевым словам и не нарушает другие правила. Оба языка являются зависимы ми от регистра символов, поэтому идентификаторы должны иметь согласованное использование заглавных букв. Хотя идентификаторы могут содержать буквы и цифры, первый символ идентификатора как в C#, так и в Java не должен быть цифрой. Java не допускает никаких символов кроме $
, а C# вообще не допускает никаких символов:
int 7х; // неверно, цифра не может начинать идентификатор
int х7; // верно, цифра может быть частью идентификатора
int х; // верно
int х$; // неверно, никакие символы недопустимы
int @7k; // неверно, @ работает только для ключевых слов
int @class; // верно, @ перед ключевым словом позволяет использовать
// его в качестве идентификатора
Стандарты именования
Одним из основных различий, которое может быть не очевидно на первый взгляд, и которое не связано специально с языком C#, является синтаксис записи идентификаторов. Java практикует обозначения типа camel
, означающее, что методы и идентификаторы используют меленькую букву для первой буквы имени и заглавную букву для первой буквы любого другого слова в имени. Общий синтаксис, которому следуют большинство программистов в Java, представлен ниже:
int id;
int idName;
int id_name; // также используется
final int CONSTANT_NAME; // широко распространен
int reallyLongId;
public class ClassName; // каждая первая буква заглавная
Интервал:
Закладка: