Why we do not have global variables in C#?

C# does not have global variables and the scope resolution operator used in C++ for global variables is related to namespaces. It is called global namespace alias.

If you have a type that shares an identifier in a different namespace, then to identify them using the scope resolution operator.

For example, to reference System.Console class, use the global namespace alias with the scope resolution operator −


Let us now see an example −


 Live Demo

using myAlias = System.Collections;
namespace Program {
   class Demo {
      static void Main() {
         myAlias::Hashtable h = new myAlias::Hashtable();

         h.Add("M", "1");
         h.Add("N", "2");
         h.Add("O", "3");
         h.Add("P", "4");

         foreach (string n in h.Keys) {
            global::System.Console.WriteLine(n + " " + h[n]);


N 2
O 3
M 1
P 4
Samual Sam
Samual Sam

Learning faster. Every day.