C#. Урок 3. Типы данных. Часть 3

Уроки для опытных   1 февраля 2013  Автор статьи:  

В данной статье рассмотрим приведение типов.

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

sbyte->short->int->long->float->double
byte->ushort->uint->ulong->float, decimal
byte->short
ushort->int
uint->long
long->decimal

Явное преобразование используется, если мы идем в обратную сторону, то есть если double->int и т.д., то есть в случаях, когда возможна потеря точности, например, из-за уменьшения числа знаков после запятой. Оно происходит следующим образом:

// тип1 имя1 = значение;
// тип2 имя2 = (тип2)имя1;
int x = 1000;
byte y = (byte)x;

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

Child c = new Child();
Parent p = c;

Явное преобразование имеет следующий вид:

MyClass m = new MyClass();
object o = m;
MyClass newClass = (MyClass) o;

Аналогично этому используется оператор as, который проверяет типы на совместимость и в случае их несоответствия возвращает null:

MyClass m = new MyClass();
object o = m;
MyClass newClass = o as MyClass;

Проверить совместимость объекта с заданным типом можно, используя is:

if (p is Parent)
{
...
}

Научиться программировать

  • на Delphi

  • на Java

  • на C++