一,資料型別的轉換
1.(int)變數名[強制型別轉換]
該轉換方式主要用於數字型別之間的轉換,從int型別向long,float,double,decimal 型別轉換可以使用隱式轉換,但從long型到int 就需要使用顯示轉換,即使用該型別的轉換方式否則產生編譯錯誤。
該方式對於浮點數會無條件的捨去,會失去精確度
對於char型別的到int型別的轉換,傳回的值是ascii碼
示例:double doublevalue = 3.14159265;2.int.parse(string 變數名)int intvalue = (int)doublevalue;
該方式是將數字內容的字串轉換為int型別,如果字串的內容為null ,則丟擲argumentnullexception異常;如果字串內容不是數字,則丟擲formatexception異常。
使用該方法只能處理字串的內容,而且轉換後的字串內容要在int型別的可表示範圍之內
3.int.tryparse(string s, out int result)
該方式也是將數字內容的字串轉換為int型別,但是該方式有比int.parse 優越的地方,就是它不會出現異常,最後乙個引數result是輸出值,如果轉換成功則輸出相應的值,轉換失敗則輸出0。
4. convert.toint32
該方式不僅可以將字串型別轉換為int,還可以將其他的型別轉換為int。變數若為object或string型別,當其值為nul時,會傳回0,不會造成程式錯誤,但是若此string型別的值為string.empty,轉換成int時,程式仍會出錯。
該方式對於float型別做四捨五入。
該方式同強制型別轉換一樣在處理char型別的時候,返回的都是ascii碼
示例:int intvalue1 = "123".convertto();int? intvalue2 = "123".convertto();
datetime datetimevalue1 = "1981-08-24".convertto();
datetime? datetimevalue2 = "1981-08-24".convertto();
二,引用型別的轉換
當子類轉為父類時會發生隱式轉換。//隱式轉換發生在佔記憶體少的資料型別向佔記憶體多的型別的轉換,還有子類朝向父類的轉換
談到引用型別轉換不得不談談 is和as
關於型別的判斷和轉換有is和as這2個操作符。具體區別和用法如下is就是處於對型別的判斷。返回true和false。如果乙個物件是某個型別或是其父型別的話就返回為true,否則的話就會返回為false。另外is操作符永遠不會丟擲異常。**如下:
= (o
issystem.object);
//b1 為true
system.boolean b2
= (o
isemployee);
//b2為false
如果物件引用為null,那麼is操作符總是返回為false,因為沒有物件可以檢查其型別,就像下面**一樣
(o is
employee)
在上面**中,其實clr對物件型別檢查了兩次:is操作首先檢查o所引用的物件是否和employee型別相容。如果相容,那麼在if語句內clr在執行轉換時又會檢查o是否為乙個employee引用。這種程式設計正規化十分常見,c#便提供了一種新的型別檢查,轉換方式。即as操作符,他可以在簡化**的同時,提高效能。**如下:
employee e
= o
asemployee;
if(e
!=null
) 這種as操作即便等同於上面**,同時只進行了1次的型別檢查,所以提高了效能。如果型別相同就返回乙個非空的引用,否則就返回乙個空引用。
C 型別轉換總結
c風格的強制型別轉換 type cast 很簡單,不管什麼型別的轉換統統是 type b type a。c 風格的型別轉換提供了4種型別轉換操作符來應對不同場合的應用。const cast,字面上理解就是去const屬性。static cast,命名上理解是靜態型別轉換。如int轉換成char。dy...
C 型別轉換總結
c風格的強制型別轉換 type cast 很簡單,不管什麼型別的轉換統統是 type b type a。c 風格的型別轉換提供了4種型別轉換操作符來應對不同場合的應用。看似問題複雜化了,其實不然。c風格的型別轉換在程式語句中難以識 c風格的強制型別轉換 type cast 很簡單,不管什麼型別的轉換...
C 型別轉換總結
c風格的強制型別轉換 type cast 很簡單,不管什麼型別的轉換統統是 type b type a。c 風格的型別轉換提供了4種型別轉換操作符來應對不同場合的應用。const cast,字面上理解就是去const屬性。static cast,命名上理解是靜態型別轉換。如int轉換成char。dy...