静态和非静态类[关闭]

问题描述 投票:0回答:1

我有一个非静态的类,因为我想使用实例,但是我也想让一个类(或一个实例)可全局访问。除了使一个类成为非静态类而使另一个类成为非静态类时,还有更好的选择吗?尽管两者实际上具有相同的代码?

c# class static non-static
1个回答
0
投票

如果我理解你的权利,你想要这样的东西:

  public class MyClass {
    ...

    public static MyClass Default {get;} = new MyClass();

    ...

    public void DoSomething() {...}
  }

因此您可以创建一个实例:

 MyClass instance = new MyClass();

 instance.DoSomething();

或使用默认值:

 MyClass.Default.DoSomething();

另一个典型用法是>

 public void Perform(MyClass value = null) {
   if (null == value)
     value = MyClass.Default;

   value.DoSomething();
   ... 
 }

然后

 Perform(); // use Default MyClass instance

 Perform(new MyClass()); // use provided MyClass instance
© www.soinside.com 2019 - 2024. All rights reserved.