C#:靜態成員和非靜態成員的區別

靜態變量使用 static 修飾符進行聲明,在類被實例化時創建,通過類進行訪問

不帶有 static 修飾符聲明的變量稱做非靜態變量,在對象被實例化時創建,通過對象進行訪問

一個類的所有實例的同一靜態變量都是同一個值,同一個類的不同實例的同一非靜態變量可以是不同的值

靜態函數的實現里不能使用非靜態成員,如非靜態變量、非靜態函數等


usingSystem;

usingSystem.Collections.Generic;

usingSystem.Text;

namespaceExample01

{

classProgram

{

classClass1

{

publicstaticString staticStr ="Class";

publicString notstaticStr ="Obj";

}

staticvoidMain(string[] args)

{

//靜態變量通過類進行訪問,該類所有實例的同一靜態變量都是同一個值

Console.WriteLine("Class1's staticStr: {0}", Class1.staticStr);

Class1 tmpObj1 =newClass1();

tmpObj1.notstaticStr ="tmpObj1";

Class1 tmpObj2 =newClass1();

tmpObj2.notstaticStr ="tmpObj2";

//非靜態變量通過對象進行訪問,不同對象的同一非靜態變量可以有不同的值

Console.WriteLine("tmpObj1's notstaticStr: {0}", tmpObj1.notstaticStr);

Console.WriteLine("tmpObj2's notstaticStr: {0}", tmpObj2.notstaticStr);

Console.ReadLine();

}

}

}

結果:

Class1's staticStr: Class

tmpObj1's notstaticStr: tmpObj1

tmpObj2's notstaticStr: tmpObj2

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1. [C#語言基礎]請簡述拆箱和裝箱。 答: 裝箱操作: 值類型隱式轉換為object類型或由此值類型實現的任何...
    胤醚貔貅閱讀 4,847評論 1 29
  • C# 中(不同于 C++)的變量,總是需要你在訪問它們前先進行初始化,否則你將遇到編譯時錯誤。故而,不可能訪問未初...
    狼之獨步閱讀 1,248評論 0 1
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,740評論 18 399
  • 國家電網公司企業標準(Q/GDW)- 面向對象的用電信息數據交換協議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 11,082評論 6 13
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,837評論 18 139