当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C# Static用法及代码示例


在 C# 中,允许创建静态类,方法是使用静止的关键词。静态类只能包含静态数据成员和静态方法。不允许创建静态类的对象,因为它不允许创建对象,这意味着它不允许实例构造函数。静态类是密封, 方法你不能从另一个类继承静态类.

用法:

static class Class_Name
{
// static data members
// static method
}

在C#中,静态类包含两种类型的静态成员,如下所示:

  • 静态数据成员:由于静态类总是包含静态数据成员,因此使用 static 关键字声明静态数据成员,并使用类名直接访问它们。静态数据成员的内存是单独分配的,与对象没有任何关系。
    用法:
static class Class_name 
{
public static nameofdatamember;
}

  • 静态方法:由于静态类总是包含静态方法,因此静态方法使用 static 关键字声明。这些方法只能访问静态数据成员,不能访问非静态数据成员。
    用法:
static class Class_name {
public static nameofmethod()
{
// code
}
}

示例 1:

C#


// C# program to illustrate the 
// concept of static class
using System;
namespace ExampleOfStaticClass {
// Creating static class
// Using static keyword
static class Author {
    // Static data members of Author
    public static string A_name = "Ankita";
    public static string L_name = "CSharp";
    public static int T_no = 84;
    // Static method of Author
    public static void details()
    {
        Console.WriteLine("The details of Author is:");
    }
}
// Driver Class
public class GFG {
    // Main Method
    static public void Main()
    {
        // Calling static method of Author
        Author.details();
        // Accessing the static data members of Author
        Console.WriteLine("Author name : {0} ", Author.A_name);
        Console.WriteLine("Language : {0} ", Author.L_name);
        Console.WriteLine("Total number of articles : {0} ", 
                                              Author.T_no);
    }
}
}
输出
The details of Author is:
Author name : Ankita 
Language : CSharp 
Total number of articles : 84

示例 2:

C#


// C# program to demonstrate 
// the concept of static class
using System;
// declaring a static class
public static class GFG {
     
    // declaring static Method
    static void display()
    {
        Console.WriteLine("Static Method of class GFG");
    }
     
}
// trying to inherit the class GFG
// it will give error as static 
// class can't be inherited 
class GFG2 : GFG {
     
    public static void Main(String[] args) {
         
         
    }
}

编译时错误:

prog.cs(20,7): error CS0709: `GFG2′: Cannot derive from static class `GFG’

解释:在上面的例子中,我们有一个名为的静态类作者通过使用 static 关键字。这作者类包含名为的静态数据成员A_name,L_name, 和T_no,以及一个名为的静态方法details()。静态类的方法只需使用其类名来调用,例如作者.details();。我们知道静态类不包含对象,因此 Author 类的数据成员是通过其类名访问的,例如作者.A_name,作者.L_name, 和作者.T_no

静态类和非静态类的区别

静态类 非静态类
静态类是使用 static 关键字定义的。 非静态类不是使用 static 关键字定义的。
在静态类中,不允许创建对象。 在非静态类中,允许使用 new 关键字创建对象。
静态类的数据成员可以通过类名直接访问。 非静态类的数据成员不能直接通过类名访问。
静态类始终包含静态成员。 非静态类可以包含静态和非静态方法。
静态类不包含实例构造函数。 非静态类包含实例构造函数。
静态类不能从另一个类继承。 非静态类可以从另一个类继承。



相关用法


注:本文由纯净天空筛选整理自ankita_saini大神的英文原创作品 C# | Static Class。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。