1、轉換的型別
預定義的轉換:數字轉換(顯式轉換,隱式轉換),引用轉換(顯式轉換,隱式轉換),裝箱轉換,拆箱轉換
使用者自定義的轉換: 隱式轉換,顯示轉換
2、隱式/顯示轉換(強制轉換)的適用情況
對於預定義的型別,若從源型別到目標型別不會發生資料丟失,c#會自動將乙個資料型別轉換為另乙個資料型別,這種轉換就是隱式轉換。
若源型別的任意值在被轉換成目標型別時會丟失值,c#不會提供這兩種型別的自動轉換,如果希望對這樣的型別進行轉換,就必須使用顯式轉換,
其語法格式為 (目標型別)源表示式
3、引用轉換
(1)定義:接收源引用並返回乙個指向堆中同乙個位置的應用,但把引用標記為其他型別
(2)常見的隱式引用轉換
所有引用型別可被隱式轉換成object型別
任何型別可以隱式轉換到它繼承的介面
類可以隱式轉換到它繼承的鏈中的任何類,可以隱式轉換到它實現的任何介面
(3)常見的顯式引用轉換(乙個泛化引用型別轉換到乙個更具體的引用型別時發生)
從object型別到任何引用型別的轉換
從基類到其子類的轉換
4、裝箱轉換----值型別到引用型別的隱式轉換
示例:int i=12; object oi=null; oi=i;//對i裝箱,並把引用賦值給oi
系統對i進行裝箱的操作如下:@1,在堆上建立了int 型別的物件。@2,將i的值複製到int物件。@3,返回int物件的引用,並儲存到oi中。
5、拆箱轉換-----把裝箱後的物件轉回值型別的顯式轉換
int i=12; object oi=i;//裝箱i並把其引用賦值給oi
int j=(int)oi;//拆箱oi並把其物件的值賦值給j。嘗試拆箱乙個值為非原始型別時,會丟擲乙個invalidcastexception異常
6、使用者自定義轉換
語法:public static
implicit/explicit
operator targettype (sourcetype identifier)
例如: public static implicit operator string(number n)
@1、public static 是必需的,implicit,explicit分別表明為隱式或顯式轉換 operator為關鍵字。
@2、只可以為類或結構定義使用者自定義轉換
@3、不能重新定義標準隱式或顯式轉換
7、is運算子-----檢查轉換是否成功
有些轉換的請求是不成功的,並會在執行時丟擲invalidcastexception異常。我們可用is運算子檢查轉換是否成功,從而避免盲目轉換
語法: 源表示式 is 目標型別
若源表示式可以通過引用,裝箱,拆箱轉換 轉換成目標型別,則運算子返回true。
8、as運算子-----類似於顯式轉換的功能
as運算子和強制轉換運算子相似,只是它不丟擲異常,若轉換失敗,它把目標引用設為null
語法: 源表示式 as 目標型別(必須為引用型別)
只能用於引用轉換和裝箱轉換
C 操作技巧的資料型別之間的轉換
我們在 vb 中的資料型別之間的轉換是非常容易的cstr,cint等等的函式,我們大家在使用的時候應該都已經是非常的清楚了,現在可以用c 做web應用了!這下 我們又多了一種語言的選擇,再加上確實有很多人對vb程式設計懷有很多的不理解 所以他們寧可使用c 進行程式設計,也有很多的同志立場不堅定!也想...
C 操作技巧的資料型別之間的轉換
我們在 vb 中的資料型別之間的轉換是非常容易的cstr,cint等等的函式,我們大家在使用的時候應該都已經 是非常的清楚了,現在可以用c 做web應用了!這下 我們又多了一種語言的選擇,再加上確實有很多人對 vb程式設計懷有很多的不理解 所以他們寧可使用c 進行程式設計,也有很多的同志立場不堅定!...
C 進製轉換操作(二)
一 將其他進製字串,轉換成十進位制 將指定進製的字串,轉換成十進位制 字串 進製數 public static int convertfromn string source,int frombase return r 例項 二進位制 console.writeline convertfromn 00...