嗨,我想要一个不能实例化但可以作为静态字段添加到另一个类的类,但我无法实现;
这是我所做的;
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/