Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 静态类和非静态类之间的区别是什么?_C# - Fatal编程技术网

C# 静态类和非静态类之间的区别是什么?

C# 静态类和非静态类之间的区别是什么?,c#,C#,有人能给我解释一下这两门课的区别吗 我总是用第一个,但我也经常用第二个 public static class Test { public static void Method() { } } public class Test { public static void Method() { } } 静态类永远无法实例化,只能有静态成员。在第二个代码段中,您可以创建一个测试实例,但不能在第一个代码段中创建。静态类只能包含第一个静态成员。第

有人能给我解释一下这两门课的区别吗

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

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

    }
}


public class Test
{
    public static void Method()
    {

    }
}

静态类永远无法实例化,只能有静态成员。在第二个代码段中,您可以创建一个测试实例,但不能在第一个代码段中创建。

静态类只能包含第一个静态成员。第二个类是非静态类,可以包含静态类和非静态类

类可以声明为静态的,表示它只包含 静态成员。无法创建静态文件的实例 使用新关键字初始化。静态类是自动加载的 由.NET Framework公共语言运行时CLR当程序 或加载包含该类的命名空间


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

不能将其用作类型参数 不能将其用作变量类型 它将没有实例构造函数,而您的非静态类隐式地有一个公共的无参数构造函数 它将是隐式抽象和密封的,即使这种组合不能是静态的 它不能包含任何非静态成员 如果它是顶级的非泛型静态类,那么它可以包含扩展方法
基本上,对于只包含静态成员的实用程序类,使用静态类可以清楚地表达这一意图,并让编译器帮助您强制执行该用法。

静态类只能具有静态方法、字段和属性。因此,在第一个示例类测试中,可能只有静态成员,而在第二个示例类测试中,静态成员和实例成员都有。您做过任何研究吗?来吧,奥恩恩。。!应该帮助而不是在这里输入一个问题,你必须在谷歌输入成千上万的结果将available@ta.speot.is:我将一如既往地将其编辑为实例构造函数+1个好答案。