Если приведение типов приводит к
В следующем примере программы демонстрируется ряд преобразований типов, требующих приведения. В этом примере показан также ряд ситуаций, в которых приведение типов становится причиной потери данных.
// Продемонстрировать приведение типов.
using System;
class CastDemo {
static void Main { double x, y; byte b; int i; char ch; uint u; short s; long 1;
x = 10.0;
У = 3.0;
Console.WriteLine("Целочисленный результат деления х / у: " + i) ; Console.WriteLine;
// Приведение типа int к типу byte без потери данных, i = 255; b = (byte) i;
Console.WriteLine("b после присваивания 255: " + b +
" -- без потери данных.");
// Приведение типа int к типу byte с потерей данных, i = 257; b = (byte) i;
Console.WriteLine("b после присваивания 257: " + b +
" — с потерей данных.");
Console.WriteLine;
// Приведение типа uint к типу short без потери данных, и = 32000; s = (short) u;
Console.WriteLine("s после присваивания 32000: " + s + " — без потери данных.");
// Приведение типа uint к типу short с потерей данных, и = 64000; s = (short) u;
Console.WriteLine("s после присваивания 64000: " + s + " — с потерей данных. ") ;
Console.WriteLine;
// Приведение типа long к типу uint без потери данных.
1 = 64000; u = (uint) 1;
Console.WriteLine("и после присваивания 64000: " + u +
" -- без потери данных.");
// Приведение типа long к типу uint с потерей данных.
1= -12;u = (uint) 1;
Console.WriteLine("и после присваивания -12: " + u +
" — с потерей данных.");
Console.WriteLine;
// Приведение типа int к типу char, b = 88; // код ASCII символа X ch = (char) b;
Console.WriteLine("ch после присваивания 88: " + ch);
}
}
Вот какой результат дает выполнение этой программы.
Целочисленный результат деления х / у: 3
b после присваивания 255: 255 -- без потери данных.
Ь после присваивания 257: 1 — с потерей данных.i