Namespaces prevent name conflicts

image_pdfimage_print

   

/*
C#: The Complete Reference 
by Herbert Schildt 

Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/
// Namespaces prevent name conflicts. 
  
using System;  
  
// Declare a namespace for counters.  
namespace Counter {  
  // A simple countdown counter.  
  class CountDown {  
    int val;  
  
    public CountDown(int n) { 
      val = n; 
    }  
  
    public void reset(int n) {  
      val = n;  
    }  
  
    public int count() {  
      if(val > 0) return val--;  
      else return 0;  
    }  
  }  
}  
 
// Declare another namespace.  
namespace Counter2 {  
  /* This CountDown is in the default namespace and  
     does not conflict with the one in Counter. */ 
  class CountDown { 
    public void count() { 
      Console.WriteLine("This is count() in the " + 
                        "Counter2 namespace."); 
    } 
  } 
} 
 
public class NSDemo2 {  
  public static void Main() {  
    // This is CountDown in the Counter namespace. 
    Counter.CountDown cd1 = new Counter.CountDown(10);  
 
    // This is CountDown in the default namespace. 
    Counter2.CountDown cd2 = new Counter2.CountDown(); 
 
    int i;  
  
    do {  
      i = cd1.count();  
      Console.Write(i + " ");  
    } while(i > 0);  
    Console.WriteLine();  
  
    cd2.count(); 
  }  
}