靜態與非靜態的區別
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("我是一個靜態方法");
}
}