gpt4 book ai didi

c# - 防止类被实例化

转载 作者:行者123 更新时间:2023-11-30 19:01:20 25 4
gpt4 key购买 nike

嗨,我想要一个不能实例化但可以作为静态字段添加到另一个类的类,但我无法实现;

这是我所做的;

    public class ValueListManager
{
public static Operations myOps { get { return new Ops(); } }
}

public interface Operations
{
void Call();
}

public class Ops : Operations
{

public void Call()
{

}
}

我不想在其他任何地方实例化 Ops 类。基本上我希望能够;

    ValueListManager.Operations.Call();

但我不想像这样使用 ops 类;

    var ops = new Ops();

有什么办法可以实现吗?

最佳答案

您可以通过在要使用它的 ValueListManager 类中将 Ops 类声明为私有(private)类来实现:

public class ValueListManager
{
private class Ops : Operations
{
public Ops()
{
}

public void Call()
{
}
}

public static Operations myOps { get { return new Ops(); } }
}

请注意,在这个基于您的代码的示例中,每次您访问 myOps 属性时都会创建一个 Ops 类的新实例。如果您不想这样,您需要在创建 Ops 实例后将其存储在静态字段中,并在属性的 Getter 中使用它。

关于c# - 防止类被实例化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35914692/

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