C#中靜態類與非靜態類的區別



靜態與非靜態的區別
1、用static(靜態) 關鍵字來區分;
在非靜態類中既可以有非靜態成員(實例成員)也可以有靜態成員;

在靜態類中只能有靜態成員存在;
2、調用實例成員時,必須使用  對象名.實例成員
      調用靜態成員時,必須使用  類名.靜態成員
3、靜態函數中只能訪問靜態成員,不允許訪問實例成員;
      實例函數中既可以訪問靜態成員,也可以使用實例成員;
4、靜態類中只能存在靜態成員;且不允許被實例化!不能創建對象;
靜態類的使用:
(01)如果你想要你的類當做一個“工具”類去使用,這個時候可以考慮寫成靜態類
(02)靜態類在整個項目中資源共享;(靜態類本身佔內存)

只有在程序全部結束之後,靜態類纔會釋放資源;所以在一個項目中越少越好;
 public class Person
    {
        private static string _name;
        public static string Name   //只能用類名去調用
        {
            get { return Person._name;}
            set { Person._name = value; }
        }
        private char _gender;
        public char Gender    //創建對象後用對象調用
        {
            get { return _gender;}
            set { _gender = value; }
        }
        public void M1()
        {
            Console.WriteLine("我是非靜態方法");   //創建對象後用對象調用
        }
        public static void M2()    //只能用類名去調用
        {
            Console.WriteLine("我是一個靜態方法");
        }
    }

發佈了38 篇原創文章 · 獲贊 18 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章