基礎知識:
1.常用的資料類型:int,short,char等,注意:可空資料類型
整數類型
有符号整數:sbyte,short,int,long
sbyte 占有1個位元組(8個二進制位),取值範圍:-128 ~127
short 占有2個位元組(16個二進制位),取值範圍:-32768 ~32767
int占有4個位元組(32個二進制位),取值範圍:-2147483648 ~2147483647 如:int age = 13;
long占有8個位元組(64個二進制位),取值範圍:9,223,372,036,854,775,808~9,223,372,036,854,775,807
例:long num = 31413L
無符号整數:byte,ushort,uint,ulong
byte占有1個位元組(8個二進制位),取值範圍:0 ~255
ushort占有2個位元組(16個二進制位),取值範圍:0~65535
uint占有4個位元組(32個二進制位),取值範圍:0~4294967295
ulong占有8個位元組(64個二進制位),取值範圍:0~18,446,744,073,709,551,615如:ulong num = 3414324U;
浮點數(有小數點)
單精度:float,有效位:小數點後的7位。如 float price = 3.0987392F
雙精度:double有效位:小數點後的15位。如 double price = 3.0987392222D
decimal 有效位:小數點後的28位。如 decimal price = 3.0987392222M
備注:decimal對應着資料庫的money資料類型。
科學計數法表示數值:double d=2.5e-6 ;表示d=2.5*10-6轉存失敗重新上傳取消。
布爾資料類型:bool,隻有true和false。
字元類型
單個字元(單引号):char占有2個位元組(16個二進制位) 如:char c = ‘a’;
字元串(雙引号):string 如:string name = “張三”;
注:如果一個字元串時double的小數,不能直接強制轉化為int類型,需要先轉為double類型在轉化int類型。例:
string a=”3.8”;int b=(int)Convert.ToDouble(a);
字元串留用問題:
因為字元串是不可變的對象,如果多個字元串便令引用多個内容相同的字元串,這樣就會浪費資源;如果在托管堆隻保留一個字元串對象,這樣會更加有效的利用記憶體。字元串留用的原理就是這樣的,是以相同的字元串隻有一個字元串執行個體,如string P_str=”abc”和string p_str2=”abc” 兩個字元串變量引用的是一個字元串對象。
對象資料類型:是所有資料類型最終的基類
隻有object 如:object obj = “123”;
可空資料類型:? 如:int? age = null;
備注:把大的資料類型的變量指派給小的資料類型變量,須強制轉換。如下:
int b = 10;
byte c = (byte)b;// 強制轉換
注:整數在計算機中預設是int類型,小數預設是double類型。如果和小的資料類型做運算時也需要強轉:
例: byte b=4; byte b1=3; byte b2=7;
b= b1+3; //出現錯誤提示:無法将類型int因式轉換為‘’byte“,存在顯示轉換。
糾正:b=(byte)(b1+3);
另外,如果兩個byte類型的資料做運算時也需要強轉。
例:b=b1+b2; //無法将int因式轉換為”byte“,存在一個顯示轉換,兩個byte類型的變量相加是,自動轉化為int ,防止超出範圍。
變量的定義:根據定義的位置不同:
字段:定義在類的裡面,方法的外邊的變量
局部變量:定義在方法的裡邊的變量
Class Program {
//字段
Static Void Main()
{//局部變量}
變量的命名規則:第一個位置必須是字母或下劃線,但隻能包括字母,數字,下劃線。
格式:資料類型 變量名字(注意:如果是字段的話,需要前邊加上[通路修飾符]:[通路修飾符] 資料類型 變量名字)
5個通路修飾符:private,protected,internal,protected internal,public。
私有的(private):修飾的變量隻能在目前類中通路,而其他類中不能通路。
受保護的(protected):修飾的變量隻能在目前類中通路,或目前類的子類(派生類)中通路。
internal:修飾的變量隻能在目前程式集(項目)中所有類通路。
protected internal:修飾的變量隻能在目前類中通路,或目前類的子類(派生類)中通路,在目前程式集(項目)中所有類通路。
公共的(public):修飾的變量在任何類中都可以被通路。
常量,隻讀字段。
常量:在運作過程中,不能修改常量所儲存的值。關鍵字:const,定義的時候必須初始化(給變量指派)定義格式:字段常量和局部常量。定義常量用public
字段常量:[通路修飾符] const 資料類型 常量的名字=初始值 如:public const string sex = “男”;
局部常量:const 資料類型 常量的名字=初始值。如:const string sex = “男”;
注意:Const 不能與Static同時使用,因為Construction預設是靜态的。
隻讀字段:在運作過程中,不能修改常量所儲存的值,但唯一可以修改該變量的值是在類的構造函數中。關鍵字:readonly
一般情況下隻有隻讀字段如:private readonly string connStr = “data source=.”
Const與readonly差別:
1. const 字段隻能在該字段的聲明中初始化。readonly 字段可以在聲明或構造函數中初始化。是以,根據所使用的構造函數,readonly 字段可能具有不同的值。
2. const 字段是編譯時常數,而 readonly 字段可用于運作時常數。
3. const 預設就是靜态的,而 readonly 如果設定成靜态的就必須顯示聲明。
4.const 對于引用類型的常數,可能的值隻能是 string 和 null。readonly可以是任何類型
總結:const隻能在初期就使用常量初始化好。對于每一次編譯後的結果,const的值是固定的,而readonly的值是可以在運作的時候才确定值的~~