Языки программирования 2005: С# и Visual Basic .NET

Алексей Федоров

Общие новинки в C# 2005 и Visual Basic .NET 2005

Visual Basic .NET 2005

C# 2005

Поддержка языков в Visual Studio 2005

Заключение

 

На протяжении нескольких последних номеров мы знакомились с различными новыми продуктами и технологиями Microsoft. Мы рассмотрели новинки в платформе и библиотеке классов .NET Framework 2.0 (см. № 10-12’2004, 1-5’2005), новые версии средств разработки Visual Studio 2005 (№ 6-8’2005), а также ознакомились с основными характеристиками и способами перехода на SQL Server 2005 (№ 9-11’2005). Завершающая статья данного цикла посвящена новинкам в языках программирования — C# 2005 и Visual Basic .NET 2005.
Некоторые новинки, появившиеся в языках программирования (как в C# 2005, так и в Visual Basic .NET 2005), — частичные классы (Partial Classes), обобщения (Generics), нулевые типы (Nullable Types) — являются общими для обоих языков; мы рассмотрим их в первой части нашего обзора, а затем обратимся к тому, что характерно для каждого конкретного языка программирования.

Общие новинки в C# 2005 и Visual Basic .NET 2005

В этой части мы рассмотрим новшества, свойственные обоим языкам программирования. К ним относятся:

  • частичные классы (Partial Classes);
  • обобщения (Generics);
  • нулевые типы (Nullable Types).

 

Частичные классы

Используя частичные классы, мы получаем возможность разделения одного класса по разным файлам с исходным текстом (число файлов не ограничено, но нужно, чтобы они были в одном пространстве имен и в одной сборке). Все, что для этого требуется, — это использование ключевого слова partial при объявлении класса.

При объединении частичных классов в процессе компиляции в результирующий класс попадают:

  • XML-комментарии;
  • интерфейсы;
  • атрибуты параметров, включая обобщенные параметры;
  • атрибуты класса;
  • члены класса.

Использование частичных классов позволяет, например, физически разбивать на части большие по объему классы, что облегчает управление ими. Также появляется возможность скрытия кода, который не подлежит редактированию, например кода, сгенерированного дизайнерами Visual Studio или другими средствами автоматизации.

 

Обобщения

Появление обобщений в Visual Basic .NET связано с необходимостью обеспечить в языке возможность работы с любым типом объекта обобщенным способом. Например, может быть необходимо создать класс, который позволяет работать только с объектами типа Employee или Customer, может обрабатывать их различными способами — в зависимости от типа полученного объекта. Для решения этой задачи в предыдущих версиях Visual Basic можно было использовать коллекции, но обобщения, появившиеся в VB .NET 2005, представляют собой достойную альтернативу коллекциям, поскольку обеспечивают большую производительность и интеграцию с технологией Microsoft IntelliSense. Более того, при использовании неверного типа данных с обобщениями мы получаем ошибку компиляции, а не ошибку времени выполнения, как это может произойти с коллекциями.

Обобщения поддерживают и так называемые ограничения (constraints), использование которых гарантирует, что для указанных типов реализована минимальная функциональность (например, тот или иной интерфейс).

В состав библиотеки классов входит ряд новых обобщенных коллекций, расположенных в пространстве имен System.Collections.Generic. Эти коллекции могут использоваться вместо соответствующих классов (например, ArrayList) из пространства имен System.Collections.

Подробное рассмотрение вопросов, связанных с использованием обобщений в языке C#, можно найти на сайте MSDN по адресу: http://msdn.microsoft.com/library/en-us/dnvs05/html/csharp_generics.asp

 

Нулевые типы

Нулевые типы позволяют переменным содержать неопределенные значения. Такие типы данных полезны при работе с базами данных и другими структурами данных, которые могут включать элементы, не содержащие определенных значений.

Тип данных Nullable является экземпляром структуры System.Nullable и содержит значения в диапазоне, соответствующем конкретному типу данных, плюс значение null. Например, переменная типа Nullable<Int32> может содержать значения в диапазоне от –2147483648 до 2147483647, а также иметь значение null.

Теперь рассмотрим изменения и дополнения, специфичные для конкретных языков программирования. Начнем с новой версии языка Visual Basic .NET.

В начало В начало

Visual Basic .NET 2005

Новинки и расширения, появившиеся в VB .NET 2005, дополняют функциональность языка, заложенную в Visual Basic .NET 1.0, и не приводят к таким принципиальным изменениям, как при переходе с Visual Basic 6.0 на Visual Basic .NET 1.0. Ниже мы рассмотрим следующие изменения:

  • перегрузка операторов (Operator Overloading);
  • частичные классы;
  • конструкция Continue;
  • конструкция Using;
  • пространство имен My.

Отметим, что пространство имен My не является изменением в языке как таковым, но, тем не менее, этот набор классов и утилит — новинка в VB .NET 2005, которая значительно облегчает выполнение ряда рутинных операций.

 

Перегрузка операторов

Перегрузка операторов позволяет определить поведение классов при использовании встроенных операторов языка: +, –, <, >, = и <>. Таким образом, появляется возможность точно определить результат выполнения той или иной операции, например сложения, примененной к экземплярам вашего класса. Для поддержки перегрузки операторов в VB .NET 2005 появилось новое ключевое слово Operator, которое используется для задания действий, выполняемых тем или иным перегружаемым оператором.

Также отметим появление нового оператора IsNot и возможность перегрузки операторов IsTrue, IsFalse, Not и CType.

 

Конструкция Continue

В языке Visual Basic существует большое число конструкций для управления выполнением приложения (flow control statements): Return — для выхода из функции, Exit — для завершения цикла и т.п. Появление конструкции Continue позволяет пропустить выполнение кода текущей итерации цикла и перейти к следующей итерации. Данная конструкция существует в трех версиях: Continue For, Continue Do и Continue While, каждая из которых используется в своем типе цикла — For ... Next, Do ... Loop или While ... End While.

Следует отметить одно ограничение конструкции Continue: при использовании вложенных циклов одного типа не существует способа ссылки на внешний цикл — в этом случае Continue всегда ссылается на внутренний цикл.

 

Конструкция Using

При использовании в .NET неуправляемых ресурсов (ссылок на файлы, соединений с базами данных, дисплейных контекстов и т.п.) всегда необходимо их освобождение сразу же после того, как ими прекращают пользоваться. Обычно объекты, применяющие неуправляемые ресурсы, реализуют интерфейс IDisposable, а для непосредственного высвобождения ресурсов вызывается метод Dispose(). Единственная проблема — не забыть вызвать этот метод. Для облегчения этой задачи в VB .NET 2005 появилась конструкция Using, которая используется в блочной структуре. Благодаря этому объект, создаваемый в рамках данного блока, автоматически уничтожается по завершении работы блока и таким образом автоматически вызывается его метод Dispose(). Вызов метода Dispose() происходит всегда и не зависит от того, как была завершена работа блока Using, даже если это произошло в результате необработанного исключения.

Помимо рассмотренных изменений, в Visual Basic .NET 2005 реализована поддержка:

  • массивов с нулевой нижней границей;
  • задания свойств с различным уровнем доступа для процедур Get и Set;
  • определения беззнаковых целочисленных типов — UShort, Uinteger и ULong, а также знакового типа SByte.

 

Пространство имен My

Как мы уже отмечали, пространство имен My не является в полном смысле слова изменением в языке, но поскольку эта новинка в VB .NET 2005 существенно облегчает выполнение ряда рутинных операций, далее мы кратко рассмотрим ее основные возможности. Пространство имен My построено на базе набора объектов, каждый из которых обеспечивает ряд свойств и методов для получения информации и выполнения определенных операций. Объекты пространства имен My показаны в табл. 1.

 

Таблица 1

Таблица 1

Теперь рассмотрим использование объектов пространства имен My более подробно. Начнем с объекта My.Application. Этот объект предоставляет информацию о выполняемом приложении. Соответствующие свойства и методы показаны в табл. 2.

 

Таблица 2

Таблица 2

Объект My.Computer позволяет получать данные о платформе, на которой выполняется приложение. В табл. 3 показаны свойства и методы этого объекта.

 

Таблица 3

Таблица 3

Класс My.User содержит свойство Identity, позволяющее получить информацию о текущем пользователе, и метод IsInRole(), служащий для определения, является ли пользователь членом определенной роли.

Класс My.WebServices позволяет обращаться к методам Web-сервисов без необходимости создания экземпляра прокси-класса.

И наконец, класс My.Forms позволяет более легко управлять формами, определенными в текущем приложении.

Дополнительную информацию по Visual Basic .NET 2005 можно найти на сайте Microsoft Developers Network (MSDN) по адресу http://msdn.microsoft.com/vbasic/2005/.

Желающие попробовать Visual Basic .NET 2005 в действии могут обратиться к версии Visual Basic 2005 Express Edition, доступной по адресу http://lab.msdn.microsoft.com/express/vbasic/.

В начало В начало

C# 2005

В новой версии языка C# появился ряд расширений и дополнений, которые будут рассмотрены ниже:

  • итераторы;
  • анонимные методы;
  • статические классы;
  • «дружественные» сборки.

 

Итераторы

Итераторы используются для управления процессом выполнения цикла foreach. Итератор — это метод, функция get или оператор, позволяющий поддерживать цикл foreach в классе либо в структуре без полной реализации интерфейса IEnumerable. Вместо этого вы создаете итератор, который перемещается по структуре данных вашего класса. Когда компилятор обнаруживает итератор, то автоматически создает методы Current, MoveNext и Dispose интерфейса IEnumerable или реализует сам интерфейс IEnumerable.

 

Анонимные методы

В C# 2.0 появилась возможность передачи в качестве параметра метода блока кода. Везде, где ожидается делегат, теперь можно использовать соответствующий блок кода — в этом случае отпадает необходимость в создании нового метода. Методы, принимающие в качестве параметров блоки кода, называются анонимными.

 

Статические классы

Статические классы используются для создания классов, содержащих статические методы, которые не могут быть унаследованы.

 

«Дружественные» сборки

В таких сборках можно обеспечить доступ к типам с атрибутом (non-public), находящимся в других сборках. Для этого используется специальный атрибут InternalsVisibleToAttribute.

Дополнительную информацию по С# 2005 можно найти на сайте Microsoft Developers Network (MSDN) по адресу http://msdn.microsoft.com/vcsharp/2005/default.aspx.

Желающие попробовать С# 2005 в работе могут обратиться к версии Visual C# 2005 Express Edition, доступной по адресу http://lab.msdn.microsoft.com/express/vcsharp/default.aspx.

В начало В начало

Поддержка языков в Visual Studio 2005

Для языка C# в Visual Studio 2005 появились дополнения и расширения, указанные в табл. 4.

 

Таблица 4

Таблица 4

Для языка Visual Basic .NET 2005 в Visual Studio 2005 реализованы дополнения и расширения, представленные в табл. 5.

 

Таблица 1

Таблица 5

В начало В начало

Заключение

На этом мы завершаем цикл статей, посвященных .NET Framework 2.0, Visual Studio 2005 и SQL Server 2005. В следующем номере мы начнем знакомство с новой версией клиентской операционной системы Microsoft Vista с точки зрения разработчиков. Затем нас ждут Microsoft Office 12 и Longhorn Server. Оставайтесь с нами!

КомпьютерПресс 12'2005

Наш канал на Youtube

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует