如何在C#库中创建全局对象
可能重复:如何在C#库中创建全局对象,c#,dll,initialization,globals,C#,Dll,Initialization,Globals,可能重复: 我有一个图书馆 库是否可以具有全局对象/变量 运行主项目时,这些对象的初始化方法是否可以从库中自动执行,或者我是否必须将其设置为静态方法并从主项目中运行 可以将类上的public用作全局对象/变量 您可以在类的中初始化静态属性,该类将在第一次访问属性之前直接调用 库是否可以具有全局对象/变量 是的,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;
}
}
静态对象仅“创建”一次。因此,应用程序使用对象的任何地方都将来自同一位置。根据定义,它们是全球性的。要在多个位置使用此对象,只需引用对象名称和要访问的元素
您可以将静态成员添加到任何类中,它们将是全局可用的,但我认为为全局成员保留一个位置是更好的设计。全局状态是邪恶的。它使得程序很难推理和调试。@Oded,没错,但有时你无法避免它——因此,使其清晰透明是非常重要的。
Console.WriteLine(Globals.Name);
Globals.onlineMemeber.Add("Hogan");