gpt4 book ai didi

c# - 如何在整个应用程序中运行一个类的实例

转载 作者:行者123 更新时间:2023-11-30 14:16:05 25 4
gpt4 key购买 nike

我知道标题可能不清楚,对此我深表歉意。所以我在 visual studio 中有两种形式,第一种形式是用户登录系统,第二种形式是其他一切发生的地方。

我在第一种形式中调用了一个名为info的类,该类负责收集用户信息并检查登录等。当用户登录系统时,该类将用户ID 并将其存储到私有(private)字符串中。从那里程序进入第二种形式。

现在这是我的问题,我怎样才能使这个类成为全局类,以便我可以从第二种形式访问存储的用户 ID?我可以只创建该类的另一个实例吗 (info myinfo = new info())?

PS 我是面向对象概念的新手,所以请使用简单的术语。

最佳答案

就我个人而言,我会投票反对全局变量。相反,我通常采用以下方式:

在调用表单 1 的代码中,通过属性从表单中获取参数。然后通过第二个表单上的参数将其传递给第二个表单。

例如:

void Main()
{
var form1 = new Form1();
form1.ShowDialog();

var info = form1.GetInfo();

var form2 = new Form2();
form2.SetInfo( info );
form2.ShowDialog();
}

如果你真的坚持要全局类,请看Singleton pattern , 作为 wsanville pointed out .基本上它大致看起来像:

public sealed class Info
{
private static Info _instance;
private static readonly object _lock = new object();

// Private to disallow instantiation.
private Info()
{
}

public static Info Instance
{
get
{
lock (_lock)
{
if (_instance==null)
{
_instance = new Info();
}
return _instance;
}
}
}
}

关于c# - 如何在整个应用程序中运行一个类的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8368445/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com