К числовым типам со знаком и без применяются расширяющие неявные преобразования. Иерархия преобразований показана на рис. 15.1. Если от исходного типа можно по стрелкам перейти к результирующему типу, значит, существует неявное преобразование от источника к результату. Например, существуют неявные преобразования от sbyte к short, от byte к decimal и от ushort к long.
Учтите, что изображенный на рисунке путь от исходного типа к результирующему не означает, что преобразование выполняется именно в такой последовательности. Он всего лишь говорит о том, что такое преобразование возможно. Другими словами, byte преобразуется в long за одну операцию, без промежуточных преобразований в ushort и uint.
class Test
{
public static void Main()
{
// Все эти преобразования выполняются неявно
sbyte v = 55;
short v2 = v;
int v3 = v2;
long v4 = v3;
// Явное преобразование к "меньшим" типам
v3 = (int) v4;
v2 = (short) v3;
v = (sbyte) v2;
}
}
0 коммент.:
Отправить комментарий