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

c# – 类的全局实例

发布时间:2020-12-16 01:55:54 所属栏目:百科 来源:网络整理
导读:仍然试图了解C#(主要与C合作).我有一个类“设备”,并希望创建该类的实例,但也想全局访问实例,因为我在我的GUI方法中使用它们太多了. public class Device { public string Name; public Liststring models = new Liststring(); public Liststring revisions
仍然试图了解C#(主要与C合作).我有一个类“设备”,并希望创建该类的实例,但也想全局访问实例,因为我在我的GUI方法中使用它们太多了.

public class Device
    {
        public string Name;
        public List<string> models = new List<string>();
        public List<string> revisions = new List<string>();
        ...
    }

以某种方式在全球宣布:

Device Device1 = new Device();
 Device1.Name = "Device1";

然后在WPF方法中访问它:

private void DeviceViewItem_Selected(object sender,RoutedEventArgs e)
    {
       TreeViewItem selected = (TreeViewItem)sender;

        if (selected.Name == Device1.Name)
        {
            Device1.Models.Add("something");
            Device1.Revisions.Add("something");
        }

我一直在阅读关于单例模式,但看起来你必须创建一个单例类,但我的“设备”类被多次使用来创建许多设备.也许我只是不明白这种模式.

解决方法

创建一个新实例并将其分配给 static属性或字段:

public class AnyClass
{
    public static readonly Device ThisFieldCanBeReachedFromAnywhere = new Device();
}

请注意,AnyClass类不必是静态的(但这意味着所有成员必须是静态的).

另请注意,readonly关键字不是必需的,对于单身人士来说这是一个很好的做法(就像Mark在他的评论中所建议的那样).

(编辑:李大同)

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

    推荐文章
      热点阅读