1. 程式人生 > >【學習筆記】C# 靜態類

【學習筆記】C# 靜態類

實例化 namespace [] line str 過程 ole test 數據

  • 靜態修飾符
    • 用static修飾的成員是靜態成員
    • 靜態成員只能由類來調用
    • 用static修飾的類是靜態類
    • 靜態類不能實例化,只能包含靜態成員和const常量
  • 在內存中一共有五個區域
    • 1. 堆區-需要程序員手動開辟,並管理內存
    • 2. 棧區-由系統自動完成內存管理
    • 3. 靜態區(全局區)- 層序運行過程中的數據一直存在
    • 4. 常量區-用於存放常量
    • 5. 代碼區-存放程序運行所需要的代碼
  • 靜態構造
    • 構造方法也可以設置為靜態
    • 靜態構造不能有參數和訪問修飾符
    • 不管是不是靜態類,都可以有靜態構造
    • 靜態構造會在第一次實例化或調用靜態成員時調用
  •  1 using System;
     2 
     3
    namespace StaticClassDemo 4 { 5 //靜態 static 6 //靜態的字段、屬性或方法,只能由類調用,不能夠由實例調用 7 //使用類創建對象的過程叫做實例化,對象也可以稱作實例 8 9 //靜態類 10 //在靜態類中,只能包含靜態的成員(字段、屬性、方法)、const常量 11 public static class A 12 { 13 //靜態字段 14 public static int i; 15 16 //構造方法 17 //1.靜態構造方法前不允許添加訪問修飾符
    18 //2.靜態構造方法可以存在於靜態類中,也可以在普通類中 19 //靜態構造方法 20 //靜態構造方法會在首次訪問類 21 /*public*/ static A() 22 { 23 Console.WriteLine("A 的靜態構造方法"); 24 } 25 26 //靜態方法 27 public static void Test() 28 { 29 //string str = "Li"; 30 //
    const int age = 19; 31 Console.WriteLine("test"); 32 } 33 } 34 //2.靜態構造方法可以存在於靜態類中,也可以在普通類中 35 public class B 36 { 37 public static int age; 38 //靜態構造會在創建對象,並在初始化之前調用 39 static B(){ 40 Console.WriteLine("B 的靜態構造方法"); 41 } 42 } 43 class Program 44 { 45 static void Main(string[] args) 46 { 47 //A a = new A(); 48 //a.i = 10; 49 //Console.WriteLine(a.i); 50 51 //直接使用類名調用靜態成員 52 A.i = 10; 53 Console.WriteLine(A.i); 54 A.Test(); 55 56 B.age = 10; 57 58 B b = new B(); 59 60 //在內存中一共有五個區域 61 //1. 堆區-需要程序員手動開辟,並管理內存 62 //2. 棧區-由系統自動完成內存管理 63 //3. 靜態區(全局區)- 層序運行過程中的數據一直存在 64 //4. 常量區-用於存放常量 65 //5. 代碼區-存放程序運行所需要的代碼 66 } 67 } 68 }

【學習筆記】C# 靜態類