一、變量的基本概念:
變量本事是用來存儲特定類型的數據,可以隨時改變變量中所存儲的數據值。變量具有名稱、類型和值。變量的值是可以發生變化的,使用變量之前必須先聲明變量,即指定變量的類型和名稱。
1、變量類型:
變量類型根據其定義分為:一種是值類型,另一種是引用類型。
二、變量類型;
1、值類型特征:
<!--[if !supportLists]--> ① <!--[endif]-->值類型變量都存儲在堆棧中;
<!--[if !supportLists]--> ② <!--[endif]-->訪問值類型變量時,一般都是直接訪問其實例;
<!--[if !supportLists]--> ③ <!--[endif]-->每個值類型變量都有自己的數據副本,因此對一個值類型變量操作不會影響其他變量;
<!--[if !supportLists]--> ④ <!--[endif]-->復制值類型變量時,復制的是變量的值,而不是變量的地址;
<!--[if !supportLists]--> ⑤ <!--[endif]-->值類型變量不能為NULL,必須具有一個確定的值
值類型是從System.ValueType 類繼承而來的類型。
2、整數類型:整數類型代表沒有小數點的整數數值
類型
說明
范圍
Sbyte
8位有符號整數
取值范圍在128~127之間
Short
16位有符號整數
取值范圍在-32,768~32,767之間
Int
32位有符號整數
取值范圍在-2,147,483,648~ 2,147,483,647之間
Long
64位有符號整數
取值范圍在-9,223,372,036,854,775,808~ 9,223,372,036,854,775,807之間
Byte
8位無符號整數
取值范圍在0~255之間
Ushort
16位無符號整數
取值范圍在0~65,535之間
Uint
32位無符號整數
取值范圍在 0 ~ 4,294,967,295之間
Ulong
64位無符號整數
取值范圍在0 ~ 18,446,744,073,709,551,615之間
創建一個控制台應用程序,聲明變量int類型的變量ls並初始化為927,一個為byte類型的變量shj並初始化為255,輸出
1 statci void Main (string [] arge) 2 { 3 int ls=927;//聲明一個int類型的變量ls 4 byte shj =255;//聲明一個byte類型的變量shj 5 Console.WriteLine("ls={0},shj={1}"+ls,shj);//輸出 6 Console.ReadLine(); 7 }
如果將byte類型的變量shj賦值266出現錯誤,byte值范圍0~255
3、浮點類型:浮點類型變量主要用於處理含有小數的數值數據,浮點型主要包含float和double。 它們的差別在於取值范圍和精度
類型
說明
范圍
float
精確到7位數
取值范圍在 1.5x10^-45~ 3.4x10^38之間
double
精確到15~16位數
取值范圍在 5.0x10^-324 ~ 1.7x10^308之間
如果不做任何設置,包含小數點的數值都被認為double類型,如果沒有指明的情況下,這個數值是double類型。如果要將數值一float類型來處理,就要強制轉換使用f或F將其指定為float類型
1 double MyDou=927d;//使用d強制轉換為double 2 double mudou=112D;//使用D強制轉換為double
將數值數值類型強制指定為double類型,則需要使用D或d進行設置
1 double MyDou=927d;//使用d強制轉換為double 2 double mudou=112D;//使用D強制轉換為double
<!--[if !supportLists]-->3、<!--[endif]-->布爾型:布爾類型主要用來表示true/false值,一個布爾類型的變量,其值只能是true或者false,不能將其他的值指定給布爾類型變量,布爾類型變量不能與其他類型進行轉換。
將927賦值給布爾類型變量x
1 Bool x=927;
這樣賦值是錯誤的,常量值927無法轉換為bool。
三、引用類型:
1、 引用類型是構建C#應用程序的主要對象類型數據,預先定義的對象類型以new創建對象實例,並存儲在堆棧中。
2、引用類型特征:
<!--[if !supportLists]--> ① <!--[endif]-->必須在托管堆中為引用類型變量分配內存;
<!--[if !supportLists]--> ② <!--[endif]-->必須需new關鍵字來創建引用類型變量;
<!--[if !supportLists]--> ③ <!--[endif]-->在托管堆中分配的每個對象都有與之相關聯的附加成員,這些成員必須被初始化;
<!--[if !supportLists]--> ④ <!--[endif]-->引用類型變量室友垃圾回收機制來管理的;
⑤ 多個引用變量可以引用同一對象,這種情況下,對一個變量的操作會影響另一個變量所引用的同一對象
⑥ 引用類型被賦值前的值都是NULL
所有被稱為“類”的都是引用類型,主要包括類、接口、數組和委托。
創建一個控制台應用程序,在其中創建一個C類,在該類中建立一個字段Value,並初始化為0.然後通過其他位置通過new創建該類的引用類型變量,最後輸出。
1 class Program 2 { 3 class C //創建一個C類 4 { 5 public int Value = 0;//聲明一個公共int類型的變量Value 6 } 7 static void Main(string[] args) 8 { 9 int v1 = 0;//聲明一個int類型的變量v1,並初始化為0 10 int v2 = 1;//聲明一個int類型的變量v2,並將v1賦值個v2 11 v2 = 927;//重新將變量V2賦值為927 12 C r1 = new C();//使用new關鍵字創建引用對象 13 C r2 = r1;//使r1=r2 14 r2.Value = 112;//設置r2的value值 15 Console.WriteLine("Values;{0},{1}", v1, v2);//設置輸出v1和v2的變量 16 Console.WriteLine("refs;{0},{1}", r1.Value, r2.Value);//輸出引用類型對象的value值 17 Console.ReadLine(); 18 } 19 }