很遗憾的是 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();
}
}
}