天天看點

C#基礎——基本資料類型、常量及變量

基礎知識:

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的值是可以在運作的時候才确定值的~~