русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Press any rey to continue


Дата добавления: 2013-12-23; просмотров: 607; Нарушение авторских прав


Byte equivalent= north

Press any rey to continue

Class Class1

{

static void Main (string [] args)

{

orientation myDirection = orientation.north;

Console.WriteLine(“myDirection = {0}”, myDirection);

}

}

}

В результате будет: myDirection = north

Внесем изменения в программу :

byte directionByte;

string directionString;

orientation myDirection = orientation.norths;

Console. WriteLine(“myDirection = {0}”, myDirection);

directionByte = (byte)myDirection;

directionString = Convert.ToString (myDirection) ;

Console.WriteLine(“byte equivalent - {0}”, directionByte);

Console.WriteLine(“string equivalent = : {0}”, directionString);

В результате будет на экране: myDirection = north

В данной программе определяется и используется перечислимый тип с именем orientation. Первое, на что следует обратить внимание: код с описанием типа помещен в пространство имен chO5ExO2, а не в то место, где находится остальной код. Это сделано потому, что в процессе выполнения программы не происходит последовательного выполнения строк определения, как это имеет место с другими строками кода приложения. Выполнение приложения начинается с определяемого нами места, причем приложение имеет доступ к новому типу, поскольку принадлежит тому же пространству имен.

Первый вариант нашего примера демонстрирует основной метод создания переменной нового типа, присваивание ей значения и вывод этого значения на экран.

Затем мы модифицировали код, чтобы показать преобразование перечислимых значений в другие типы. Заметьте, что в таких случаях необходимо использовать явное преобразование. Несмотря на то что базовым типом типа orientation является тип byte, нам все равно приходится использовать явное приведение типа (byte) для преобразования значения переменной myDirection в тип byte:



directionByte = (byte)myDirection;

Такое же явное приведение типа требуется и для обратного преобразования, когда тип byte нужно преобразовать в тип orientation. Например, для преобразования переменной типа byte с именем myByte в тип orientation и присвоения получившегося значения переменной myDirection можно воспользоваться следующим кодом:

myDirection = (orientation)myByte;

Естественно, в данном случае необходимо действовать очень аккуратно, поскольку не каждое из допустимых значений переменной типа byte соответствует какому-либо из описанных значений переменной типа orientation. В переменных типа orientation вполне могут храниться и другие значения типа byte, и, хотя это не приведет к непосредственному возникновению ошибки, логика дальнейшего выполнения приложения может быть нарушена.

Для получения строкового значения из значения перечислимого типа можно использовать Convert.ToString():

directionString = Convert.ToString(myDirection);

Приведение (string) в данном случае не будет выполняться, поскольку здесь требуется более сложная обработка, нежели простой перенос данных, хранящихся в переменной перечислимого типа, в переменную типа string. В качестве альтернативы можно воспользоваться командой ToString () самой переменной. Следующий код даст точно такой же результат, что и использование Convert.ToString()

directionString = myDirection.ToString();

Обратное преобразование значения типа string в значение перечислимого типа также возможно, однако для этого потребуется немного более сложный синтаксис. Для преобразований такого рода существует специальная команда Enum.Parse(), которая используется следующим образом:

(перечислимыйТип)Епит> Parse (typeof (перечислимыйТип) ,

значениеСтрокиПеречислимогоТипа);

Здесь задействован еще один оператор — typeof, который позволяет получать тип своего операнда. Мы могли бы воспользоваться им для нашего перечислимого типа orientation следующим образом:

string myString = “ north”;

orientation myDirection = (orientation) Enum. Parse (typeof (orientation, myString);

Естественно, далеко не каждое строковое значение будет соответствовать какому-либо значению типа orientation. Использование значения, которому не соответствует ни одно из значений перечислимого типа, приведет к возникновению ошибки. Как и все в С#, эти значения чувствительны к регистру, поэтому мы получим ошибку даже в том случае, если наша строка будет соответствовать перечислимому значению во всем, кроме регистра (например, если переменной myString будет присвоено значение "North" вместо "north").



<== предыдущая лекция | следующая лекция ==>
Summary description for Classl. | Summary description for Class1.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.003 сек.