C 中資料型別的安全轉換(is,as)

2021-09-22 06:38:43 字數 1590 閱讀 2441

原文 c#中資料型別的安全轉換(is,as)

下面**中,不能裝箱,在強制型別轉換時出錯,因為之前 c 是 class 型別,而卻要把它轉換為 int 型別,這是不可以的。雖然編譯器能通過編譯,但是 runtime 在執行時會丟擲 invalidcastexception 異常。

1

2

3

4

circle c =newcircle(8);

objecto = c;// 本條語句正確,但是不會裝箱,因為裝箱是從棧到堆,需要的是值型別,而 c 是引用型別

inti = (int)o;// 編譯成功

// 編譯器編譯通過,但是執行時 runtime 會丟擲乙個 invalidcastexception

is 和 as 是 c# 提供的以安全的方式執行型別強制轉換的操作符,用法如下。

is操作符驗證物件的型別是不是自己希望的。

1

2

3

4

5

6

new

objecto = wi;

if(ois

as操作符取乙個物件和乙個型別作為其左邊和右邊的運算元。

runtime 會嘗試將物件轉換成指定的型別,若轉換成功,就返回轉換成功後的結果給 temp,如果轉換失敗,返回null給 temp。

1

2

3

4

5

6

7

new

objecto = wi;

as

if(temp !=null)

沒有整理與歸納的知識,一文不值!高度概括與梳理的知識,才是自己真正的知識與技能。 永遠不要讓自己的自由、好奇、充滿創造力的想法被現實的框架所束縛,讓創造力自由成長吧! 多花時間,關心他(她)人,正如別人所關心你的。理想的騰飛與實現,沒有別人的支援與幫助,是萬萬不能的。

C 中資料型別的安全轉換(is,as)

下面 中,不能裝箱,在強制型別轉換時出錯,因為之前 c 是 class 型別,而卻要把它轉換為 int 型別,這是不可以的。雖然編譯器能通過編譯,但是 runtime 在執行時會丟擲 invalidcastexception 異常。view plain circle c newcircle 8 ob...

C 中資料型別的安全轉換(is,as)

原文 c 中資料型別的安全轉換 is,as 下面 中,不能裝箱,在強制型別轉換時出錯,因為之前 c 是 class 型別,而卻要把它轉換為 int 型別,這是不可以的。雖然編譯器能通過編譯,但是 runtime 在執行時會丟擲 invalidcastexception 異常。circle c new...

C 中資料型別轉換

1 使用parse方法 該方法只能將字串型別轉換成其他資料型別,語法格式 資料型別.parse string 資料型別可以是 int16,int32,int64,double,float,char,datetime中的任一種。2 使用convert方法 可以把任意型別轉換成其他型別,語法格式 con...