* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна! RSS



Константы и перечисления
7 февраля 2009

Зачастую некоторые значения встречаются в коде приложения многократно. Кон-
станты позволяют присваивать таким значениям дружественные имена и приме-
нять их в коде для ссылки на эти значения. Перечисление — это определяемый
пользователем набор целочисленных констант с дружественными именами. При-
менение констант и перечислений делает код более понятным, простым в отладке
и устойчивым к ошибкам, вызванным опечатками.
Применение констант
Как уже говорилось, константы позволяют использовать дружественные имена для
ссылок на часто встречающиеся в коде значения. Их объявляют при помощи клю-
чевого слова Const (const), например:
Visual Basic .NET
Public Const Pi as Dojble = 3.14159265
Visual C#
public const double Pi = 3.14159265:
Константами могут быть любые внутренние или перечислимые типы, но не
пользовательские типы и массивы. По определению, константы — это неизменяе-
мые значения, которые нельзя модифицировать или переопределить после того, как
они были установлены. Определив константу, можно использовать ее в коде вместо
значения, которое она представляет. Вот пример константы:
Visual Basic .NET
Public Const Pi as Double = 3.14159265
Public Function CalculateCircleAreafByVal г as Double) as Double
Return Pi * г Л 2
End Function
Visual C#
public const double Pi = 3.14159265;
public double CalculateCircleArea(double r)
{
// В Си л - это двоичный оператор, а не оператор возведения в степень.
return Pi * г * г;
}
Подобно переменным, у констант бывают разные уровни доступа. Если констан-
та должна быть доступной всем пользователям приложения или компонента, сле-
дует объявить ее с ключевым словом Public (public), как в предыдущем примере.
Константы, предназначенные исключительно для внутреннего употребления, не-
обходимо объявлять с модификатором Private (private). Константы, объявленные с
ключевым словом Friend (internal), доступны в пределах сборки, а те, которые опре-
делены с ключевым словом Protected (protected), — всем типам, производным от типа,
в котором она объявлена.
Применение перечислений
Перечисления позволяют работать с наборами логически связанных констант, на-
значая им имена, которые легко запомнить. Например, перечисление (см. пример
кода ниже), объявленное на основе констант, представляющих дни недели, позво-
лит заменить в коде номера дней недели их названиями,
Visual Basic .NET
Public Enum DaysOfWeek
Monday = 1
Tuesday = 2
Wednesday = 3
Thursday = 4
Friday = 5
Saturday = 6
Sunday = 7
End Enum
Visual C#
public enum DaysOfWeek
I
Monday - 1,
Tuesday = 2,
Wednesday - 3,
Thursday = 4,
Friday = 5,
Saturday = 6,
Sunday - 7
}
По умолчанию перечисления объявляются с типом Integer (int), но у них может
быть и любой другой целочисленный тип (в Visual Basic .NET это Byte, Short, Integer
или Long, а в Visual C# — byte, short, int или long). Чтобы создать перечисление с
типом, отличным от типа по умолчанию, укажите нужный тип в объявлении пере-
числения:
Visual Basic .NET
Public Enum DaysOfWeek As Byte
Остальной код опущен
Visual C#
public enum DaysOfWeek : byte
Остальной код опущен
He обязательно указывать значения членов перечисления явно. Если значения
членов перечисления не заданы, по умолчанию им присваиваются последователь-
ные значения, начиная с нуля:
Visual Basic .NET
Public Enum Numbers
zero ' имеет значение "О"
one ' имеет значение "1"
two ' имеет значение "2"
End Enum
Visual C#
public enum Numbers
{
zero, // имеет значение "О"
one, // имеет значение "1"
two // имеет значение "2"
}
Определив члены перечисления, можно применять их в коде. В Visual Basic .NET
члены перечисления автоматически преобразуются в значения, которые они пред-
ставляют. Таким образом, их допустимо использовать как константы:
Visual Basic .NET
Этот пример использует перечисление Numbers из предыдущего примера.
MessageBox.Show((Numbers.two * 2).ToString()) ' Эта команда выводит
сообщение "4".
Однако для использования значений членов перечисления в Visual C# необхо-
димо явно приводить их к соответствующему целочисленному типу, например:
Visual C#
// Этот пример использует перечисление Numbers из предыдущего примера,
MessageBox.Show(((int)Nufnbers. two * 2).ToString()); // Эта команда выводит
// сообщение "4" .
Поскольку перечисления — это пользовательские типы, разрешается создавать
методы, требующие в качестве параметров члены перечисления вместо числовых
значений. Замена числовых параметров членами перечислений уменьшает вероят-
ность ошибок, связанных с опечатками. Следующий пример демонстрирует приме-
нение созданного ранее перечисления DaysOfWeek в качестве параметра для метода:
Visual Basic .NET
Public Sub ScheduleDayOff(ByVal day as DaysOfWeek)
Select Case day
Case DaysOfWeek. Monday
Реализация опущена
Case DaysOfWeek. Tuesday
Реализация опущена
Остальные операторы Case опущены
End Case
End Sub
Visual C#
public void ScheduleDayOff (DaysOfWeek day)
{
switch(day)
{
case DaysOfWeek. Monday:
// Реализация опущена
break;
case DaysOfWeek. Tuesday:
// Реализация опущена
break;
// Прочие варианты опущены

Теги: .NET

Статьи по теме:

Установка порядка передачи фокуса при нажатии клавиши Tab
Объекты и члены
Наследование от абстрактного класса
Managed Control Panel Items
Строительные блоки .NET
Специальные возможности и логотип «Certified for Windows»
Использование провайдеров дополнительных свойств
Замыкания (closure)
Анти-паттерны в действии или Самые популярные ошибки программистов
Форматирование, зависимое от культуры
Работа с фокусом ввода
Создание составных элементов управления
Интерфейсы CTS
Связывание, просмотр и фильтрация данных
Генерация исключений
| .NET | Pavel |
 


Пн Вт Ср Чт Пт Сб Вс
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31


     



Rambler's Top100

Данный сайт или домен продается ICQ: 403-353-727

© 2009 Seoliga.ru | .NET | Константы и перечисления. Регион сайта: Москва и Санкт-Петербург