C#靜態(tài)變量與實(shí)例變量實(shí)例分析
本文實(shí)例講述了C#靜態(tài)變量與實(shí)例變量的具體用法,分享給大家供大家參考。具體分析如下:
1)在語法定義上的區(qū)別:
類變量也叫靜態(tài)變量,靜態(tài)變量前要加static關(guān)鍵字,而實(shí)例變量前則不加;
實(shí)例變量也叫對象變量,即沒加static 的變量;
2)在程序運(yùn)行時(shí)的區(qū)別:
實(shí)例變量屬于某個(gè)對象的屬性,必須創(chuàng)建了實(shí)例對象,其中的實(shí)例變量才會被分配空間,才能使用這個(gè)實(shí)例變量。靜態(tài)變量不屬于某個(gè)實(shí)例對象,而是屬于類,所以也稱為類變量,只要程序加載了類的字節(jié)碼,不用創(chuàng)建任何實(shí)例對象,靜態(tài)變量就會被分配空間,靜態(tài)變量就可以被使用了??傊?,實(shí)例變量必須創(chuàng)建對象后才可以通過這個(gè)對象來使用。靜態(tài)變量則可以直接使用類名來引用;
3)在運(yùn)行表現(xiàn)結(jié)果的區(qū)別:
類變量和實(shí)例變量的區(qū)別在于:類變量是所有對象共有,其中一個(gè)對象將它值改變,其他對象得到的就是改變后的結(jié)果;而實(shí)例變量則屬對象私有,某一個(gè)對象將其值改變,不影響其他對象;
再來看看下面這段程序:
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é)果如下圖所示:

希望本文所述對大家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)知識,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-02-02
C# ComboBox控件“設(shè)置 DataSource 屬性后無法修改項(xiàng)集合”的完美解決方法
這篇文章主要介紹了C# ComboBox控件“設(shè)置 DataSource 屬性后無法修改項(xiàng)集合”的解決方法,非常不錯(cuò)具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2016-11-11
C#實(shí)現(xiàn)子類與父類的相互轉(zhuǎn)換
這篇文章主要介紹了C#實(shí)現(xiàn)子類與父類的相互轉(zhuǎn)換,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05
c#使用linq技術(shù)創(chuàng)建xml文件的小例子
c#使用linq技術(shù)創(chuàng)建xml文件的小例子,需要的朋友可以參考一下2013-03-03

