C# 實體變數/類變數 static

來源:互聯網
上載者:User

標籤:

今天在拜讀Stoneniqiu的【讀書筆記】--代碼整潔之道時,遇到一個詞叫做"實體變數",原諒我如此無知吧,這麼基礎的東西到現在都不清楚,汗顏。於是就迅速去看看這個變數到底是什麼玩意兒……

實體變數(執行個體變數),說道這個東東,就得說說類變數(靜態變數)。

先看個類:

    public class ExampleVariable    {        public static int Num1 { get; set; }        public int Num2 { get; set; }        public void ChangeNums(int n1,int n2)        {            Num1 = n1;            this.Num2 = n2;        }        public int[] GetNums()        {            return new int[] { Num1, Num2 };        }    }

帶static的Num1就是類變數,不帶static的Num2就是實體變數了。那他們有什麼區別呢?

   看一段小小的小代碼:

  • 聲明對象1,給2個變數分別賦值,顯示對象1的變數資料;
  • 聲明對象2,給2個變數分別賦值,分別顯示對象1和對象2的變數資料;
        public MainWindow()        {            InitializeComponent();            ExampleVariable example1 = new ExampleVariable();            example1.ChangeNums(10, 11);            int[] nums1 = example1.GetNums();            tbk1.Text = string.Format("example1:Num1={0},Num2={1}", nums1[0], nums1[1]) ;//類中的static不屬於任何對象            tbk1.Text+= Environment.NewLine + Environment.NewLine;            ExampleVariable example2 = new ExampleVariable();            example2.ChangeNums(20, 21);            nums1 = example1.GetNums();            tbk1.Text += string.Format("example1:Num1={0},Num2={1}", nums1[0], nums1[1]) ;//類中的static不屬於任何對象            tbk1.Text+= Environment.NewLine ;            int[] nums2 = example2.GetNums();            tbk1.Text += string.Format("example2:Num1={0},Num2={1}", nums2[0], nums2[1]);//類中的static不屬於任何對象        }

 

運行結果:

 

 

 

 

可以看出:

     ① 類中Num1不屬於this指標,this.Num1這樣的寫法是不正確的;但是Num2是屬於This的,完全可以this.Num2;

     ② Num1是static的,只能在類ExampleVariable中被使用,如果該類對象需要修改他的值,必須通過成員函數來實現,

         但是Num2完全可以在對象中直接調用:對象.Num2;

     ③ Num1屬於整個類,所有對象對其只有1分拷貝。當對象2修改了Num1時,對象1的Num1也將改變,因為2個對象公用Num1,但是Num2就不會變化。

 

C# 實體變數/類變數 static

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.