日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#装箱,拆箱和强制转换(转)

發布時間:2025/7/14 C# 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#装箱,拆箱和强制转换(转) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

出處:https://www.cnblogs.com/fengjiulin110120/p/6605739.html

關系:

強制轉換就包含有裝箱拆箱操作,裝箱就是把值類型轉換成引用類型,反之就是拆箱.

?

一:  裝箱和拆箱:

裝箱是把值類型轉換成引用類型,而拆箱是把引用類型轉換成值類型;

利用裝箱和拆箱功能,可通過允許值類型的任何值與Object 類型的值相互轉換,將值類型與引用類型鏈接起來.
?例如:?
int val = 100;?
object obj = val;?
Console.WriteLine (“對象的值 = {0}", obj);?
這是一個裝箱的過程,是將值類型轉換為引用類型的過程

int val = 100;?
object obj = val;?
int num = (int) obj;?
Console.WriteLine ("num: {0}", num);?
這是一個拆箱的過程,是將值類型轉換為引用類型,再由引用類型轉換為值類型的過程?

注意:被裝過箱的對象才能被拆箱;

二:   內存分配:

  值類型只會在棧中分配。
??????引用類型分配內存與托管堆。
??????托管堆對應于垃圾回收。

三:   強制轉換:

? ?(引用)

1.任何一門編程語言均有相關數據類型。C#也不例外,其基本數據類型有int,short,long,float,double,string等。數據類型之間可以相互轉換。不過轉換過程要注意小類型能轉換成大類型,但大類型一般不能轉換成小類型,也就是說低精度無條件轉高精度,高精度轉低精度需要添加轉換條件。如int型可以轉換成float型,但float型不一定可以轉換成int型,至少這在C,C++是這樣,但在C#中明顯有了改變.

例如:

double dbl_num=12345678910.456;
int k = (int) dbl_num ;//此處運用了強制轉換

以上代碼如果在C,C++中強制轉換成int型,肯定會出錯,但現在在C#中卻不會出錯了,不過轉換后的值往往是溢出值,是不精通的。這點需要大家注意。

2.采用另一種方式轉換類型,如int.parse(),int32.parse()等采用方法來轉換.

string str="100";

int i=int.Parse(str);

注意:str除掉引號的類型必須和*.Parse的類型一致。如果將100改成100.78,即變成float類型,運行時將會報錯”輸入字符串的格式不正確.”

3.采用后綴式轉換,如k.toString(),一般運用于字符串或日期等其它類型

int i=100;

string s=i.ToString();

4.采用Convert類來實現轉換,該類基本支持所以類型之間的轉換

string str="100";

int i = Convert.ToInt16(str);

注意:str除掉引號的類型必須和Convert.*的類型一致。如果將100改成100.78,即變成float類型,運行時將會報錯”輸入字符串的格式不正確.”

?

轉載于:https://www.cnblogs.com/smileberry/p/9914735.html

總結

以上是生活随笔為你收集整理的C#装箱,拆箱和强制转换(转)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。