Demonstrate as


   

/*
C#: The Complete Reference 
by Herbert Schildt 

Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/


// Demonstrate as. 
 
using System; 
 
class A {} 
class B : A {} 
 
public class CheckCast1 { 
  public static void Main() { 
    A a = new A(); 
    B b = new B(); 
 
    b = a as B; // cast, if possible 
 
    if(b==null)  
      Console.WriteLine("Cast b = (B) a is NOT allowed."); 
    else 
      Console.WriteLine("Cast b = (B) a is allowed"); 
  } 
}


           
          


Use is to avoid an invalid cast


   

/*
C#: The Complete Reference 
by Herbert Schildt 

Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/


// Use is to avoid an invalid cast. 
 
using System; 
 
class A {} 
class B : A {} 
 
public class CheckCast { 
  public static void Main() { 
    A a = new A(); 
    B b = new B(); 
 
    // Check to see if a can be cast to B. 
    if(a is B)  // if so, do the cast 
      b = (B) a; 
    else // if not, skip the cast 
      b = null; 
 
    if(b==null)  
      Console.WriteLine("Cast b = (B) a is NOT allowed."); 
    else 
      Console.WriteLine("Cast b = (B) a is allowed"); 
  } 
}


           
          


Demonstrate is


   

/*
C#: The Complete Reference 
by Herbert Schildt 

Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/


// Demonstrate is. 
 
using System; 
 
class A {} 
class B : A {} 
 
public class UseIs { 
  public static void Main() { 
    A a = new A(); 
    B b = new B(); 
 
    if(a is A) Console.WriteLine("a is an A"); 
    if(b is A)  
      Console.WriteLine("b is an A because it is derived from A"); 
    if(a is B)  
      Console.WriteLine("This won't display -- a not derived from B"); 
 
    if(b is B) Console.WriteLine("B is a B"); 
    if(a is object) Console.WriteLine("a is an Object"); 
  } 
}


           
          


Test is and as


   

/*
Learning C# 
by Jesse Liberty

Publisher: O'Reilly 
ISBN: 0596003765
*/
 using System;

 namespace InterfaceDemo
 {
     interface IStorable
     {
         void Read();
         void Write(object obj);
         int Status { get; set; }

     }

     // the Compressible interface is now the
     // base for ILoggedCompressible
     interface ICompressible
     {
         void Compress();
         void Decompress();
     }

     // extend ICompressible to log the bytes saved
     interface ILoggedCompressible : ICompressible
     {
         void LogSavedBytes();
     }


     // Document implements both interfaces
     class Document : IStorable, ILoggedCompressible
     {
         // the document constructor
         public Document(string s)
         {
             Console.WriteLine("Creating document with: {0}", s);

         }

         // implement IStorable
         public void Read()
         {
             Console.WriteLine(
                 "Implementing the Read Method for IStorable");
         }

         public void Write(object o)
         {
             Console.WriteLine(
                 "Implementing the Write Method for IStorable");
         }

         public int Status
         {
             get { return status; }
             set { status = value; }
         }

         // implement ICompressible
         public void Compress()
         {
             Console.WriteLine("Implementing Compress");
         }

         public void Decompress()
         {
             Console.WriteLine("Implementing Decompress");
         }

         // implement ILoggedCompressible
         public void LogSavedBytes()
         {
             Console.WriteLine("Implementing LogSavedBytes");
         }

         // hold the data for IStorable's Status property
         private int status = 0;
     }


    public class TesterISAS
    {
       public void Run()
       {
           Document doc = new Document("Test Document");

           // cast using as, then test for null
           IStorable isDoc = doc as IStorable;
           if (isDoc != null)
           {
               isDoc.Read();
           }
           else
           {
               Console.WriteLine("Could not cast to IStorable");
           }



           ILoggedCompressible ilDoc = doc as ILoggedCompressible;
           if (ilDoc != null)
           {
               Console.Write("
Calling both ICompressible and ");
               Console.WriteLine("ILoggedCompressible methods...");
               ilDoc.Compress();
               ilDoc.LogSavedBytes();
           }
           else
           {
               Console.WriteLine("Could not cast to ILoggedCompressible");
           }

           // cast using as, then test for null
           ICompressible icDoc = doc as ICompressible;
           if (icDoc != null)
           {
               Console.WriteLine(
                   "
Treating the object as Compressible... ");
               icDoc.Compress();
           }
           else
           {
               Console.WriteLine("Could not cast to ICompressible");
           }
       }

       [STAThread]
       static void Main()
       {
          TesterISAS t = new TesterISAS();
          t.Run();
       }
    }
 }

           
          


Illustrates the use of the is operator


   

/*
Mastering Visual C# .NET
by Jason Price, Mike Gunderloy

Publisher: Sybex;
ISBN: 0782129110
*/

/*
  Example3_9.cs illustrates the use of
  the is operator
*/

public class Example3_9
{

  public static void Main()
  {

    int myInt = 0;
    bool compatible = myInt is int;
    System.Console.WriteLine("myInt is int = " + compatible);

    compatible = myInt is long;
    System.Console.WriteLine("myInt is long = " + compatible);

    compatible = myInt is float;
    System.Console.WriteLine("myInt is float = " + compatible);

  }

}

           
          


Bitwise Operators 2

   

/*
 * C# Programmers Pocket Consultant
 * Author: Gregory S. MacBeth
 * Email: gmacbeth@comporium.net
 * Create Date: June 27, 2003
 * Last Modified Date:
 */
using System;

namespace Client.Chapter_2___Operators_and_Excpressions
{
  public class BitwiseOperators
  {
    static void Main(string[] args)
    {
      long MyBit = 0x1;
      long MyBitResult = 0;

      MyBitResult = MyBit & 0x1;
      MyBitResult = MyBit | 0x2;
      MyBitResult = MyBit ^ 0x4;
    }
  }
}

           
          


A class that displays the binary representation of a value


   

/*
C# A Beginner's Guide
By Schildt

Publisher: Osborne McGraw-Hill
ISBN: 0072133295
*/
/* 
   Project 5-3 
 
   A class that displays the binary representation of a value. 
*/ 
using System; 
 
class ShowBits { 
  public int numbits; 
 
  public ShowBits(int n) { 
    numbits = n; 
  } 
 
  public void show(ulong val) { 
    ulong mask = 1; 
 
    // left-shift a 1 into the proper position 
    mask <<= numbits-1; 
 
    int spacer = 0; 
    for(; mask != 0; mask >>= 1) { 
      if((val &amp; mask) != 0) Console.Write("1"); 
      else Console.Write("0"); 
      spacer++; 
      if((spacer % 8) == 0) { 
        Console.Write(" "); 
        spacer = 0; 
      } 
    } 
    Console.WriteLine(); 
  } 
} 
 
// Demonstrate ShowBits. 
public class ShowBitsDemo { 
  public static void Main() { 
    ShowBits b = new ShowBits(8); 
    ShowBits i = new ShowBits(32); 
    ShowBits li = new ShowBits(64); 
 
    Console.WriteLine("123 in binary: "); 
    b.show(123); 
 
    Console.WriteLine("
87987 in binary: "); 
    i.show(87987); 
 
    Console.WriteLine("
237658768 in binary: "); 
    li.show(237658768); 
 
 
    // you can also show low-order bits of any integer 
    Console.WriteLine("
Low order 8 bits of 87987 in binary: "); 
    b.show(87987);  
  } 
}