在 C# 中,我总是使用静态类来提供此功能。此处详细介绍了静态类,但简要地说,它们仅包含静态成员且未实例化——本质上它们是通过类名(和命名空间)访问的全局函数和变量。
这是一个简单的例子:
public static class Globals
{
public static string Name { get; set; }
public static int aNumber {get; set; }
public static List<string> onlineMembers = new List<string>();
static Globals()
{
Name = "starting name";
aNumber = 5;
}
}
请注意,我还使用了一个静态初始化程序,它保证在使用/调用任何成员或函数之前的某个时间点运行。
在您的程序的其他地方,您可以简单地说:
Console.WriteLine(Globals.Name);
Globals.onlineMembers.Add("Hogan");
为了响应评论重新声明,静态对象仅“创建”一次。因此,您的应用程序使用该对象的任何地方都将来自同一位置。根据定义,它们是全球性的。要在多个地方使用此对象,只需引用对象名称和要访问的元素。