C#在类外创建静态对象VS在类中创建它有什么区别?

Inf*_*ner 1 c#

我想了解下面3组代码段之间的区别:

private static FirstObject o = new FirstObject();
public class ClassA
{
}

//-----------------------------------------------------

public class ClassA
{
    private static FirstObject o = new FirstObject();
}

//-----------------------------------------------------

public class ClassA
{
    private static FirstObject o;

    public ClassA
    { 
        o = new FirstObject();
    }
}
Run Code Online (Sandbox Code Playgroud)

请帮助我理解这些的范围,内存,性能和用法.

谢谢.

Pet*_*nov 5

  1. 无效,因为你不能在对象之外有变量

  2. 正确的方法 - 类有一个静态成员,在第一次访问类时初始化

  3. 非常糟糕,因为每次创建新对象时,都会重新创建静态对象.