加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 01:49:40 所属栏目:百科 来源:网络整理
导读:我知道标题可能不清楚,我为此道歉. 所以我在visual studio中有2个表单,在第一个表单中用户登录到系统,第二个表单是其他一切发生的地方. 我在第一种形式中调用了一个名为info的类,该类负责收集用户信息并检查登录等.当用户登录系统时,该类获取用户ID并将其存
我知道标题可能不清楚,我为此道歉.
所以我在visual studio中有2个表单,在第一个表单中用户登录到系统,第二个表单是其他一切发生的地方.

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

现在这里是我的问题,我如何使这个类全局,所以我可以从第二个表单访问存储的userID?我可以创建该类的另一个实例(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;
            }
        }
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读