當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。