嗨,我想拥有一个无法实例化的类,但可以将其作为静态字段添加到另一个类中,但是我无法实现;
这是我所做的;
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类声明为私有类来实现此目的:
public class ValueListManager
{
private class Ops : Operations
{
public Ops()
{
}
public void Call()
{
}
}
public static Operations myOps { get { return new Ops(); } }
}
请注意,在此示例中,基于您的代码,每次您访问myOps属性时,都会创建一个Ops类的新实例。如果不希望这样,则需要在Ops实例创建后将其存储在静态字段中,并在属性的Getter中使用它。