静态类是我们无法实例化的类。静态类唯一且最重要的目标是交出继承类的蓝图。它是在 C# 中的“static”关键字的帮助下创建的。静态类仅包含静态成员。我们无法为静态类创建对象。在本主题中,我们将学习 C# 中的静态类。
C# 中的静态类由两种静态类型组成,如下所示:
静态数据成员是通过使用 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.
静态构造函数
与普通构造函数(即非静态构造函数)相比,静态构造函数基本上用于静态数据成员的初始化。
功能/规则:
你一定知道应用程序内存的基本组成部分是堆和栈。堆内的一个特殊区域称为高频堆,其中存储静态成员。非静态类的静态成员也存储在堆中,然后在该类的所有实例之间共享。因此,一个实例所做的更改会反映在所有其他实例中。
您一定已经知道,静态成员只能包含其他静态成员,因为无论实例是否创建,静态成员都会被调用。从今以后,他们将无法访问非静态成员。
以上是C# 中的静态类的详细内容。更多信息请关注PHP中文网其他相关文章!