C#基礎7_10_靜態類

1》創建靜態類

using System;

using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace WindowsFormsApplication2
{
    //定義靜態類,靜態類與非靜態類的重要區別在於靜態類不能實例化,也就是說,不能使用 new 關鍵字創建靜態類類型的變量。
    public static class staticClass  
    {
        static int staticMember;//靜態類中成員也必須是靜態的,靜態成員隸屬於類,它的靜態成員都只有一個副本,在各個地方的改變都會改變其值;
        //靜態類中方法前面要加static
         public static string staticMethod(){
             string name = "name1_小許";
             return name;
         }
        
 /* 
1:靜態類可以有靜態構造函數,靜態構造函數不可繼承;
2:靜態構造函數可以用於靜態類,也可用於非靜態類;
3:靜態構造函數無訪問修飾符、無參數,只有一個 static 標誌;
4:靜態構造函數不可被直接調用,當創建類實例或引用任何靜態成員之前,靜態構造函數被自動執行,並且只執行一次。


注意:
1:靜態類在內存中是一直有位置的;
2:非靜態類在實例化後是在內存中是獨立的,它的變量不會重複,在使用後會及時銷燬,所以不會出現未知的錯誤。在C#中靜態成員是比較敏感的東西,在不是十分確認的情況下不要使用;
3:建議更多地使用一般類(非靜態類)。


使用選擇:

當定義的類不需要進行實例化時,我們使用靜態類;如果需要實例化對象,需要繼承等特性時,應該使用非靜態類,並且將統一使用的變量和方法設爲靜態的,那麼所有實例對象都能訪問。

 */

    }

}

2》在窗體winform中使用它

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;


namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        private void Form1_Load(object sender, EventArgs e)
        {


           label1.Text=staticClass.staticMethod();//調用靜態類不需要使用new 實例化
        }
    }
}

C#基礎7_10_靜態類

 

C#基礎7_10_靜態類

 


 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章