Create an implication operator in C#

image_pdfimage_print

/*
C#: The Complete Reference
by Herbert Schildt

Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/
// Create an implication operator in C#.
using System;

public class Implication {
public static void Main() {
bool p=false, q=false;
int i, j;

for(i = 0; i < 2; i++) { for(j = 0; j < 2; j++) { if(i==0) p = true; if(i==1) p = false; if(j==0) q = true; if(j==1) q = false; Console.WriteLine("p is " + p + ", q is " + q); if(!p | q) Console.WriteLine(p + " implies " + q + " is " + true); Console.WriteLine(); } } } } [/csharp]

Using casts in an expression

image_pdfimage_print

/*
C#: The Complete Reference
by Herbert Schildt

Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/
// Using casts in an expression.

using System;

public class CastExpr {
public static void Main() {
double n;

for(n = 1.0; n <= 10; n++) { Console.WriteLine("The square root of {0} is {1}", n, Math.Sqrt(n)); Console.WriteLine("Whole number part: {0}" , (int) Math.Sqrt(n)); Console.WriteLine("Fractional part: {0}", Math.Sqrt(n) - (int) Math.Sqrt(n) ); Console.WriteLine(); } } } [/csharp]

A promotion surprise

image_pdfimage_print

   

/*
C#: The Complete Reference 
by Herbert Schildt 

Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/
// A promotion surprise!  
  
using System;  
  
public class PromDemo {     
  public static void Main() {     
    byte b;  
    
    b = 10;  
    b = (byte) (b * b); // cast needed!!  
  
    Console.WriteLine("b: "+ b);  
  }     
}

           
          


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);  
  }    
}

           
          


This program attempts to declared a variable in an inner scope

image_pdfimage_print

/*
C#: The Complete Reference
by Herbert Schildt

Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/
/*
This program attempts to declared a variable
in an inner scope with the same name as one
defined in an outer scope.

*** This program will not compile. ***
*/

using System;

public class NestVar {
public static void Main() {
int count;

for(count = 0; count < 10; count = count+1) { Console.WriteLine("This is count: " + count); int count; // illegal!!! for(count = 0; count < 2; count++) Console.WriteLine("This program is in error!"); } } } [/csharp]

Demonstrate lifetime of a variable

image_pdfimage_print

/*
C#: The Complete Reference
by Herbert Schildt

Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/
// Demonstrate lifetime of a variable.

using System;

public class VarInitDemo {
public static void Main() {
int x;

for(x = 0; x < 3; x++) { int y = -1; // y is initialized each time block is entered Console.WriteLine("y is: " + y); // this always prints -1 y = 100; Console.WriteLine("y is now: " + y); } } } [/csharp]

Demonstrate block scope

image_pdfimage_print

   

/*
C#: The Complete Reference 
by Herbert Schildt 

Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/
// Demonstrate block scope. 
 
using System; 
 
public class ScopeDemo { 
  public static void Main() { 
    int x; // known to all code within Main() 
 
    x = 10; 
    if(x == 10) { // start new scope
      int y = 20; // known only to this block 
 
      // x and y both known here. 
      Console.WriteLine("x and y: " + x + " " + y); 
      x = y * 2; 
    } 
    // y = 100; // Error! y not known here  
 
    // x is still known here. 
    Console.WriteLine("x is " + x); 
  } 
}