静态类和非静态类有什么区别?

Sha*_*iZy -8 c#

有人可以解释一下这两个班级之间的区别吗?

我总是使用第一个,但我经常使用第二个.

public static class Test
{
    public static void Method()
    {

    }
}


public class Test
{
    public static void Method()
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 8

第一个类是静态的,这意味着:

  • 您不能将其用作类型参数
  • 您不能将其用作变量类型
  • 它将没有实例构造函数(而您的非静态类隐式具有公共无参数构造函数)
  • 它将隐式抽象和密封(即使这种组合不能是静态的
  • 它不能包含任何非静态成员
  • 它可以包含扩展方法(如果它是顶级的非泛型静态类)

基本上是工具类这仅仅意味着包含静态成员,使用静态类清楚地表达了意图,并让编译器帮你强制执行使用.