-8

誰かがこれらの2つのクラスの違いを説明してもらえますか?

私は常に最初のものを使用していますが、2番目のものもよく使用します。

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

    }
}


public class Test
{
    public static void Method()
    {

    }
}
4

3 に答える 3

8

最初のクラスは静的です。つまり、次のことを意味します。

  • 型引数として使用することはできません
  • 変数型として使用することはできません
  • インスタンスコンストラクターはありません(非静的クラスには暗黙的にパラメーターなしのパブリックコンストラクターがあります)
  • 暗黙的に抽象化され、封印されます (その組み合わせは静的にはなりませんが)
  • 非静的メンバーを含めることはできません
  • 拡張メソッドを含めることができます (最上位の非ジェネリックな静的クラスの場合)

基本的に、静的メンバーのみを含むことを意図したユーティリティ クラスの場合、静的クラスを使用すると、その意図が明確に表現され、コンパイラがその使用を強制するのに役立ちます。

于 2013-02-14T09:13:27.307 に答える
1

静的クラスはインスタンス化できず、静的メンバーのみを持つことができます。2 番目のコード スニペットでは、 のインスタンスを作成できますがTest、最初のコードではできません。

于 2013-02-14T09:12:55.307 に答える
0

静的クラスには、最初のメンバーを持つ静的メンバーのみを含めることができます。2 つ目は非静的クラスで、静的と非静的の両方を含めることができます。

クラスは静的であると宣言できます。これは、静的メンバーのみが含まれていることを示します。new キーワードを使用して静的クラスのインスタンスを作成することはできません。静的クラスは、クラスを含むプログラムまたは名前空間が読み込まれるときに、.NET Framework 共通言語ランタイム (CLR) によって自動的に読み込まれます (参照.

于 2013-02-14T09:13:08.530 に答える