gpt4 book ai didi

c# - 类的全局实例

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

仍在尝试了解 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 在他的评论中建议的那样)。

关于c# - 类的全局实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17555620/

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