Demonstrate casting

image_pdfimage_print

   

/*
C#: The Complete Reference 
by Herbert Schildt 

Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/
// Demonstrate casting. 
 
using System; 
 
public class CastDemo {    
  public static void Main() {    
    double x, y; 
    byte b; 
    int i; 
    char ch; 
    uint u; 
    short s; 
    long l; 
 
    x = 10.0; 
    y = 3.0; 
 
    // cast an int into a double 
    i = (int) (x / y); // cast double to int, fractional component lost 
    Console.WriteLine("Integer outcome of x / y: " + i); 
    Console.WriteLine(); 
     
    // cast an int into a byte, no data lost 
    i = 255; 
    b = (byte) i;  
    Console.WriteLine("b after assigning 255: " + b + 
                      " -- no data lost."); 
 
    // cast an int into a byte, data lost 
    i = 257; 
    b = (byte) i;  
    Console.WriteLine("b after assigning 257: " + b + 
                      " -- data lost."); 
    Console.WriteLine(); 
 
    // cast a uint into a short, no data lost 
    u = 32000; 
    s = (short) u; 
    Console.WriteLine("s after assigning 32000: " + s + 
                      " -- no data lost.");  
 
    // cast a uint into a short, data lost 
    u = 64000; 
    s = (short) u; 
    Console.WriteLine("s after assigning 64000: " + s + 
                      " -- data lost.");  
    Console.WriteLine(); 
 
    // cast a long into a uint, no data lost 
    l = 64000; 
    u = (uint) l; 
    Console.WriteLine("u after assigning 64000: " + u + 
                      " -- no data lost.");  
 
    // cast a long into a uint, data lost 
    l = -12; 
    u = (uint) l; 
    Console.WriteLine("u after assigning -12: " + u + 
                      " -- data lost.");  
    Console.WriteLine(); 
 
    // cast an int into a char 
    b = 88; // ASCII code for X 
    ch = (char) b; 
    Console.WriteLine("ch after assigning 88: " + ch);  
  }    
}