很遗憾的是 C# 语言中没有全局变量!不知道设计的时候是怎么考虑的?滥用全局变量可能会引起程序的混乱,但是合理使用,也会带来很大的方便。

    幸运的是,我们可以使用类里面的 static 字段曲折地达到使用“全局变量”的目的。

    例如以下代码:

    //文件 global.cs

    using System;

    using System.Collections.Generic;

    using System.Text;

    namespace MyGlobalNameSpace

    {

        public class myGlobal

        {

            private static string var1 = "";

            public static string sVar1

            {

                get

                {

                    return var1;

                }

                set

                {

                    var1 = value;

                }

            }

        }

    }

    在类 myGlobal 里声明一个静态的 string 类型的属性 sVar1,就可以在本应用的别的类里赋值,而在另外的类里就可以使用该值。

    例如以下代码给变量 sVar1 赋值:

    //文件 cls1.cs:

    using System;

    using System.Collections.Generic;

    using System.Text;

    using MyGlobalNameSpace;

    namespace GlobalVar

    {

        class cls1

        {

            public void method1()

            {

                //例如在这里给变量 sVar1 赋值

                myGlobal.sVar1 = "my global var";

            }

        }

    }

    在主程序里显示变量 sVar1 的值:

    //文件 Program.cs:

    using System;

    using System.Collections.Generic;

    using System.Text;

    using MyGlobalNameSpace;

    namespace GlobalVar

    {

        class Program

        {

            static void Main(string[] args)

            {

                cls1 t = new cls1();

                t.method1();

                Console.WriteLine(myGlobal.sVar1);

                Console.ReadLine();

            }

        }

    }