2011-01-21 10 views

答えて

6

静的クラスの機能は、C#2でのみ導入されました.CLRには、このような概念はありません。 C#で静的なクラス:

  • が抽象サブクラス化することはできません:あなたはそれのインスタンスを作成することはできません

    • コンストラクタ、1
    • が封入されていなくても、デフォルトのパラメーターなしを持っていません
    • のみ含めることができます静的メンバ
    • 等のパラメータまたは変数の型またはジェネリック型引数として使用することはできません
    • が仕様することはできません(また、そこにはコンストラクタをされていないから、以下のもの) 「正常な」クラスの静的メンバを使用して静的クラスでものを使用しての間にパフォーマンスの違いはありませんobject

    以外の任意の基本型をIFY。これは主に、このクラスのインスタンスが存在しないようにするためのものです。専用のコンストラクタと呼ばないコンストラクタを用意することなく、でないことをコンパイラに確認させて普通のクラス。

    extension methods(C#3で導入されました)は、トップレベルの非ジェネリック静的クラスでのみ宣言できます。

  • +0

    また、静的クラスは 'object'からのみ継承できます。 – leppie

    +0

    @leppie:私は2番目の弾丸としてすでに最初のものを持っています。オブジェクトの直接のサブクラスでなければならないということについてのビットを追加します。 –

    +0

    私は入力した直後に:) – leppie

    1

    それは2つの意味があります

    1. クラスのすべてのメソッドは静的でなければなりませんが。

    2. コード内でそのクラスのインスタンスを他の場所にすることはできません。

    関連する問題