C#靜態(tài)變量與實(shí)例變量實(shí)例分析
本文實(shí)例講述了C#靜態(tài)變量與實(shí)例變量的具體用法,分享給大家供大家參考。具體分析如下:
1)在語法定義上的區(qū)別:
類變量也叫靜態(tài)變量,靜態(tài)變量前要加static關(guān)鍵字,而實(shí)例變量前則不加;
實(shí)例變量也叫對(duì)象變量,即沒加static 的變量;
2)在程序運(yùn)行時(shí)的區(qū)別:
實(shí)例變量屬于某個(gè)對(duì)象的屬性,必須創(chuàng)建了實(shí)例對(duì)象,其中的實(shí)例變量才會(huì)被分配空間,才能使用這個(gè)實(shí)例變量。靜態(tài)變量不屬于某個(gè)實(shí)例對(duì)象,而是屬于類,所以也稱為類變量,只要程序加載了類的字節(jié)碼,不用創(chuàng)建任何實(shí)例對(duì)象,靜態(tài)變量就會(huì)被分配空間,靜態(tài)變量就可以被使用了。總之,實(shí)例變量必須創(chuàng)建對(duì)象后才可以通過這個(gè)對(duì)象來使用。靜態(tài)變量則可以直接使用類名來引用;
3)在運(yùn)行表現(xiàn)結(jié)果的區(qū)別:
類變量和實(shí)例變量的區(qū)別在于:類變量是所有對(duì)象共有,其中一個(gè)對(duì)象將它值改變,其他對(duì)象得到的就是改變后的結(jié)果;而實(shí)例變量則屬對(duì)象私有,某一個(gè)對(duì)象將其值改變,不影響其他對(duì)象;
再來看看下面這段程序:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { StaticTest A, B;//定義類的變量 A = new StaticTest();//創(chuàng)建類的實(shí)例A B = new StaticTest();//創(chuàng)建類的實(shí)例B StaticTest.stal = StaticTest.stal + 10;//通過類名給靜態(tài)變量賦值 A.a2 = A.a2 + 10;//給實(shí)例A的成員A2賦值 StaticTest.stal = StaticTest.stal + 10;//通過類名給靜態(tài)變量賦值 B.a2 = B.a2 + 20;//給實(shí)例B的成員賦值 Console.WriteLine("StaticTest.stal+{0},A.a2={1}", StaticTest.stal, A.a2);//輸出靜態(tài)變量和實(shí)例A的成員a2的值 Console.WriteLine("StaticTest.stal+{0},B.a2={1}", StaticTest.stal, B.a2);//輸出靜態(tài)變量和實(shí)例B的成員a2的值 Console.ReadKey(); } } class StaticTest { public static int stal = 10;//定義靜態(tài)變量 public int a2 = 10;//定義實(shí)例變量 } }
運(yùn)行結(jié)果如下圖所示:
希望本文所述對(duì)大家C#程序設(shè)計(jì)的學(xué)習(xí)有所幫助。
- C# 靜態(tài)變量與靜態(tài)方法實(shí)例研究
- C# 靜態(tài)構(gòu)造函數(shù)使用總結(jié)
- c#只讀字段和常量的區(qū)別,以及靜態(tài)構(gòu)造函數(shù)的使用實(shí)例
- C#中靜態(tài)構(gòu)造函數(shù)的幾點(diǎn)說明介紹
- C#中static靜態(tài)變量的用法實(shí)例
- C#靜態(tài)構(gòu)造函數(shù)用法實(shí)例分析
- 理解C#編程中的靜態(tài)類和靜態(tài)成員以及密封類
- 解析C#中的私有構(gòu)造函數(shù)和靜態(tài)構(gòu)造函數(shù)
- C#中的靜態(tài)成員、靜態(tài)方法、靜態(tài)類介紹
- 淺析C#靜態(tài)類,靜態(tài)構(gòu)造函數(shù),靜態(tài)變量
相關(guān)文章
C#實(shí)現(xiàn)定時(shí)任務(wù)Task Scheduler的示例代碼
這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)定時(shí)任務(wù)Task Scheduler的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-02-02C# ComboBox控件“設(shè)置 DataSource 屬性后無法修改項(xiàng)集合”的完美解決方法
這篇文章主要介紹了C# ComboBox控件“設(shè)置 DataSource 屬性后無法修改項(xiàng)集合”的解決方法,非常不錯(cuò)具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2016-11-11C#實(shí)現(xiàn)子類與父類的相互轉(zhuǎn)換
這篇文章主要介紹了C#實(shí)現(xiàn)子類與父類的相互轉(zhuǎn)換,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05c#使用linq技術(shù)創(chuàng)建xml文件的小例子
c#使用linq技術(shù)創(chuàng)建xml文件的小例子,需要的朋友可以參考一下2013-03-03