ホームページ >バックエンド開発 >C#.Net チュートリアル >C# の静的クラス
静的クラスはインスタンス化できないクラスです。静的クラスの唯一かつ最も重要な目的は、継承されたクラスのブループリントを引き継ぐことです。これは、C# の「static」キーワードを使用して作成されます。静的クラスには静的メンバーのみが含まれます。静的クラスのオブジェクトを作成することはできません。このトピックでは、C# の静的クラスについて学習します。
C# の静的クラスは、以下に示す 2 種類の静的クラスで構成されます。
静的クラスには常に静的データ メンバーが含まれるため、静的データ メンバーは static キーワードを使用して宣言されます。クラス名を使用して直接アクセスすることもできます。静的データ メンバーのメモリは、オブジェクトとの関係に関係なく個別に割り当てられます。
構文:
static class NameOfClass { public static name_of_datamember; }
例:
public class Vehicle { public static int Wheels = 4; public static int GasTank { get { return 23; } } public static void move() { } public static event EventType RunOutOfGas; // Extra non-static fields as well as properties }
これらは、静的メンバーが初めてアクセスされる前、および静的コンストラクターが呼び出される前に初期化されます。これにアクセスするには、変数名ではなくクラス名を使用します。
静的クラスには常に静的メソッドが含まれるため、static キーワードを使用すると静的メソッドが宣言されます。これらのメソッドは静的データ メンバーにのみアクセスでき、非静的データ メンバーにはアクセスできません。
構文:
static class name_of_class { public static name_of_method() { // code } }
以下に挙げる例は次のとおりです
コード:
/* * C# Program to Check whether the Entered Number is Even or Odd */ using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace check1 { class EvenAndOdd { static void Main(string[] args) { int i; if (4 % 2 == 0) // You can enter any number you wish to check for even / odd { Console.Write("Entered Number is an Even Number"); Console.Read(); } else { Console.Write("Entered Number is an Odd Number"); Console.Read(); } } } }
出力:
コード:
using System; using System.Collections.Generic; using System.Linq; using System.Text; public static class ABC { // declaration of static Method static void details() { Console.Write("Static Method of the class ABC is"); } } // Inheritance of the class ABC which would give an error since static // class cannot be inherited class ABC2 : ABC { public static void Main(String[] args) { } }
出力:
説明: 最初の例には、static キーワードを使用した Book という名前の静的クラスがあります。 Book クラスは、name、l、t の静的データ メンバーと、specs() という名前の静的メソッドで構成されます。静的クラスのこのメソッドは、クラス名、つまり Book を使用して呼び出されます。スペック();。静的クラスがオブジェクトで構成されていないことはすでにわかっているため、Book クラスのデータ メンバーにはクラス名 (Book.name、Book) を使用してアクセスします。 lとBook.t.
静的コンストラクター
静的コンストラクターは、通常のコンストラクター、つまり非静的データ メンバーの初期化に役立つ非静的コンストラクターと比較して、基本的に静的データ メンバーの初期化に役立ちます。
機能/ルール:
アプリケーションのメモリの基本コンポーネントはヒープとスタックであることはご存知でしょう。ヒープ内の特別な領域は高周波ヒープと呼ばれ、静的メンバーが格納されます。非静的クラスの静的メンバーもヒープに格納され、クラスのすべてのインスタンス間で共有されます。したがって、1 つのインスタンスによって行われた変更は、他のすべてのインスタンスに反映されます。
すでにご存知かと思いますが、静的メンバーはインスタンスの作成に関係なく呼び出されるので、静的メンバーには他の静的メンバーのみを含めることができます。今後、非静的メンバーにはアクセスできなくなります。
以上がC# の静的クラスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。