рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Концепция типа данных. Соглашения о совместимости и приведение типов

Концепция типа данных. Соглашения о совместимости и приведение типов - раздел Программирование, Объектно-ориентированное программирование как идеология программирования и как технология. Достоинства и недостатки Концепция Типов Данных Состоит В Том, Что Каждой Информации ...

Концепция типов данных состоит в том, что каждой информации приписывается тип, который описывается:

1) множеством допустимых значений типа,

2) набором операций для этого типа,

3) диапазоном допустимых значений,

4) количеством памяти, необходимой для хранения данного типа.

Тип данных определяет допустимые действия над данными.

Все встроенные типы C# однозначно отображаются, а фактически совпадают с системными типами каркаса Net Framework, размещенными в пространстве имен System. Поэтому всюду, где можно использовать имя типа, например, — int, с тем же успехом можно использовать и имя System.Int32.

В программировании переменной одного типа часто присваивается значение переменной другого типа. Например, как показано в следующем фрагменте программы, мы могли бы присвоить переменной типа float значение типа int .

int i; float f;

i = 10; f = i; // float-переменной присваивается int-значение.

Если в инструкции присваивания смешиваются совместимые типы, значение с правой стороны (от оператора присваивания) автоматически преобразуется в значение "левостороннего" типа. Таким образом, в предыдущем фрагменте программы значение, хранимое в int-переменной i, преобразуется в значение типа float, а затем присваивается переменной f. Но, поскольку в С# не все типы совместимы и действует строгий контроль типов, не все преобразования типов разрешены в неявном виде. Например, типы bool и int несовместимы. Тем не менее с помощью операции приведения типов все-таки возможно выполнить преобразование между несовместимыми типами. Приведение типов — это выполнение преобразования типов в явном виде.

При присвоении значения одного типа данных переменной другого типа будет выполнено автоматическое преобразование типов, если: эти два типа совместимы; тип приемника больше (т.е. имеет больший диапазон представления чисел), чем тип источника.

При соблюдении этих двух условий выполняется преобразование с расширением, или расширяющее преобразование. Например, тип int — достаточно "большой" тип, чтобы сохранить любое допустимое значение типа byte, а поскольку как int , так и byte — целочисленные типы, здесь может быть применено автоматические преобразование. Для расширяющих преобразований числовые типы, включая целочисленные и с плавающей точкой, совместимы один с другим. Например, преобразование типов из long в double является расширяющим, которое выполняется автоматически.

double D; long L;

L = 100123285L; D = L;

Несмотря на возможность автоматического преобразования типов из long в double, обратное преобразование типов (из double в long) автоматически не выполняется, поскольку это преобразование не является расширяющим.

Несмотря на большую пользу автоматического преобразования типов оно не в состоянии удовлетворить все нужды программирования, поскольку реализуется только при расширяющем преобразовании между совместимыми типами. Во всех остальных случаях приходится применять приведение к типу. Приведение к типу — это явно заданная инструкция компилятору преобразовать один тип в другой. Инструкция приведения записывается в следующей общей форме:

(тип_приемника) выражение

Здесь элемент тип_приемника определяет тип для преобразования заданного выражения. Например, если вам нужно, чтобы выражение х/у имело тип int , напишите следующие программные инструкции:

double х, у; (int) (х / у) ;

В этом фрагменте кода, несмотря на то, что переменные х и у имеют тип double, результат вычисления заданного выражения приводится к типу int. Круглые скобки, в которые заключено выражение х / у , обязательны. В противном случае (без круглых скобок) операция приведения к типу int была бы применена только к значению переменной х, а не к результату деления. Для получения результата желаемого типа здесь не обойтись без операции приведения, поскольку автоматического преобразования из типа double в int не существует.

Если приведение приводит к сужающему преобразованию, возможна потеря информации. Например, в случае приведения типа long к типу int информация будет утеряна, если значение типа long больше максимально возможного числа, которое способен представить тип int , поскольку будут "усечены" старшие разряды long-значения. При выполнении операции приведения типа с плавающей точкой к целочисленному будет утеряна дробная часть простым ее отбрасыванием. Например, при присвоении переменной целочисленного типа числа 1,23 в действительности будет присвоено число 1. Дробная часть (0,23) будет утеряна.

// Приведение типа byte к типу char.

b = 88; // ASCII-код для буквы X.

ch = (char) b;

 

– Конец работы –

Эта тема принадлежит разделу:

Объектно-ориентированное программирование как идеология программирования и как технология. Достоинства и недостатки

Класс это шаблон который определяет форму объекта Он задает как данные так и код который оперирует этими данными Объекты это экземпляры... Объявление объекта типа Building... Building house new Building...

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

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Объектно-ориентированное программирование как идеология программирования и как технология. Достоинства и недостатки.
Язык С# — это очередная ступень бесконечной эволюции языков программирования. Его создание вызвано процессом усовершенствования и адаптации, который определял разработку компьютерных языков в течен

Ссылка на самого себя
В C# зарезервированное слово this используется для ссылки на текущий объект. Необходимость такого слова связана в основном с разрешением конфликта имен в конструкторах. Конечно, избежать конфликта

Конструкторы и деструкторы. Функциональное назначение. Виды конструкторов.
Конструктор — неотъемлемый компонент класса. Нет классов без конструкторов. Конструктор представляет собой специальный метод класса, позволяющий создавать объекты класса. Одна из с

Объекты и их жизненный цикл. Создание и уничтожение объектов.
В объектно-ориентированном языке при связывании кода и данных создается объект. Код, данные или обе эти составляющие объекта могут быть закрытыми внутри него или открытыми. Закрытый код или закрыты

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

Основы обработки исключений
Управление С#-механизмом обработки исключений зиждется на четырех ключевых словах: try, catch, throw и finally. Они образуют взаимосвязанную подсистему, в которой использование одного из них предпо

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

Коллизия имен
Проблема коллизии имен возникает, когда два или более интерфейса имеют методы с одинаковыми именами и сигнатурой. Если имена методов совпадают, но сигнатуры разные, то это не приводит к конфликтам

Наследование от общего предка
Проблема наследования от общего предка характерна, в первую очередь, для множественного наследования классов. Если класс C является наследником классов A и B, а те, в свой черед, являются наследник

Концепция типа данных. Числовые типы данных.
Концепция типов данных состоит в том, что каждой информации приписывается тип, который описывается: 1) множеством допустимых значений типа, 2) набором операций дл

Концепция типа данных. Символьные типы данных.
Концепция типов данных состоит в том, что каждой информации приписывается тип, который описывается: 1) множеством допустимых значений типа, 2) набором операций дл

Структуры
public struct Book { public decimal price; public string title; public string author; } Классы — это ссылочные типы. Это означает, что к объект

Концепция типа данных. Явное и неявное преобразование типов.
Концепция типов данных состоит в том, что каждой информации приписывается тип, который описывается: 1) множеством допустимых значений типа, 2) набором операций дл

Концепция типа данных. Значащие (размерные) (Value type) и ссылочные (Reference type) типы данных. Упаковка и распаковка (Boxing, Unboxing).
Концепция типов данных состоит в том, что каждой информации приписывается тип, который описывается: 1) множеством допустимых значений типа, 2) набором операций дл

Принцип модульности программ. Глобальные и локальные имена. Область видимости имен. Выбор области видимости.
У класса две различные роли: модуля и типа данных. Класс — это модуль, архитектурная единица построения программной системы. Модульность построения — основное свойство программных систем. В ООП про

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги